Слайд 2
![Условный оператор if if (логическое_выражение) оператор_1; [else оператор_2;] ----------------------------------------------------------------------------------------------------------------- if](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-1.jpg)
Условный оператор if
if (логическое_выражение) оператор_1;
[else оператор_2;]
-----------------------------------------------------------------------------------------------------------------
if (условие)
{
//
последовательность операторов
}
else
{
// последовательность операторов
}
Слайд 3
![Пример 1 if (i == 10) { if (j if](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-2.jpg)
Пример 1
if (i == 10) {
if (j < 20)
-a = b;
if (k > 100) с = d;
else a = с; // этот оператор else
// связан с оператором if (k > 100)
}
else a = d; // этот оператор else
// связан с оператором if (i == 10)
Слайд 4
![Пример 2 if (a if (a d || a ==](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-3.jpg)
Пример 2
if (a < 0) b = 1; // 1
if (a
< b && (a > d || a == 0)) b++;
else { b *= a; a = 0; } // 2
if (a < b)
if (a < c) m = a;
else m = c;
else
if (b < c) m = b;
else m = c; // 3
if (b > a) max = b;
else max = a; // 4
Слайд 5
![Пример 3 Программа подсчитывает количество очков после выстрела по мишени](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-4.jpg)
Пример 3
Программа подсчитывает количество очков после выстрела по мишени
Слайд 6
![Пример 3 using System; namespace ConsoleApplication1{ class Class1{ static void](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-5.jpg)
Пример 3
using System;
namespace ConsoleApplication1{
class Class1{
static void Main() {
Console.WriteLine(
"Введите координату x" );
double x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine( "Введите координату у" );
double y = double.Parse( Console.ReadLine() );
int kol = 0;
if (x * x + y * y < 1) kol = 2;
else if (x * x + y * y < 4) kol = 1;
Console.WriteLine("Результат = {0} очков", kol);
}
}
}
Слайд 7
![Многоступенчатая конструкция if-else-if if (условие) оператор; else if (условие) оператор;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-6.jpg)
Многоступенчатая конструкция if-else-if
if (условие) оператор;
else if (условие) оператор;
else
if (условие) оператор;
else оператор;
Условные выражения вычисляются сверху вниз - как только обнаружится истинное условие, выполняется связанный с ним оператор, а все остальные операторы в многоступенчатой конструкции опускаются.
Если ни одно из условий не является истинным, то выполняется последний оператор else, а если последний else отсутствует, то никаких действий вообще не выполняется.
Слайд 8
![Пример 4 using System; class Ladder { // Наименьший множитель](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-7.jpg)
Пример 4
using System;
class Ladder { // Наименьший множитель = НМ
static void Main() {
int num;
for (num = 2; num < 12; num++) {
if ((num % 2) == 0)
Console.WriteLine("НМ числа " + num + " равен 2.");
else if ((num % 3) == 0)
Console.WriteLine("НМ числа " + num + " равен 3.");
else if ((num % 5) == 0)
Console.WriteLine("НМ числа " + num + " равен 5.");
else if ((num % 7) == 0)
Console.WriteLine("НМ числа " + num + " равен 7.");
else Console.WriteLine(num + " не дел-ся на 2, 3, 5, 7.");
}
}
}
Слайд 9
![Оператор множественного выбора switch switch (выражение){ case константное_выражение_1: [ список_опер-в_1](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-8.jpg)
Оператор множественного выбора switch
switch (выражение){
case константное_выражение_1: [ список_опер-в_1 ]
case
константное_выражение_2: [ список_опер-в_2 ]
...
case константное_выражение_n: [ список_опер-в_n ]
[ default: операторы ]
}
Заданное выражение (переключатель) в операторе switch должно быть целочисленного типа (char, byte, short или int), перечислимого или же строкового.
Кроме того, константы выбора (константное_выражение_n) должны иметь тип, совместимый с типом выражения.
В одном операторе switch не допускается наличие двух одинаковых по значению констант выбора.
Слайд 10
![Оператор множественного выбора switch Выполнение оператора начинается с вычисления выражения.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-9.jpg)
Оператор множественного выбора switch
Выполнение оператора начинается с вычисления выражения.
Затем управление передается
первому оператору из списка, помеченному константным выражением, значение которого совпало с вычисленным (переключателем). Если совпадения не произошло, выполняются операторы, расположенные после слова default, а при его отсутствии управление передается следующему за switch оператору.
Слайд 11
![Оператор множественного выбора switch Каждая ветвь переключателя должна заканчиваться явным](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-10.jpg)
Оператор множественного выбора switch
Каждая ветвь переключателя должна заканчиваться явным оператором перехода, а именно
одним из операторов break, goto или return:
- оператор break выполняет выход из самого внутреннего из объемлющих его операторов switch, for, while и do;
- оператор goto выполняет переход на указанную после него метку, обычно это метка case одной из нижележащих ветвей оператора switch;
- оператор return выполняет выход из функции, в теле которой он записан.
Слайд 12
![Пример 5 using System; namespace ConsoleApplication1{ class Class1{ static void](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-11.jpg)
Пример 5
using System;
namespace ConsoleApplication1{
class Class1{
static void Main(){
string
buf; double a, b, res;
Console.WriteLine( "Введите первый операнд:" );
a = double.Parse( Console.ReadLine() );
Console.WriteLine( "Введите знак операции" );
char op = (char)Console.Read();
Console.ReadLine();
Console.WriteLine( "Введите второй операнд:" );
b = double.Parse( Console.ReadLine() );
bool ok = true;
Слайд 13
![Пример 5 switch (op){ case '+' : res = a](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-12.jpg)
Пример 5
switch (op){
case '+' : res = a +
b; break;
case '-' : res = a - b; break;
case '*' : res = a * b; break;
case '/' : res = a / b; break;
default : res = double.NaN; ok = false; break;
}
if (ok) Console.WriteLine( "Результат: " + res );
else Console.WriteLine( "Недопустимая операция" );
}
}
}
Слайд 14
![Пример 5 Структурная блок-схема оператора switch](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-13.jpg)
Пример 5
Структурная блок-схема оператора switch
Слайд 15
![Пример 6 static void Main() { char ch; for (ch='A';](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-14.jpg)
Пример 6
static void Main() {
char ch;
for (ch='A';
ch<= 'E'; ch++)
switch (ch) {
case 'A': Console.WriteLine("ch содержит А");
case 'B': Console.WriteLine ("ch содержит В");
case 'С' : Console.WriteLine ("ch содержит С");
break;
case 'D': Console.WriteLine("ch содержит D");
case 'E': Console.WriteLine("ch содержит Е");
break;
}
}
Слайд 16
![Пример 7 using System; class EmptyCasesCanFall { static void Main()](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-15.jpg)
Пример 7
using System;
class EmptyCasesCanFall {
static void Main() {
int i;
for (i=l; i < 5; i++)
switch (i) {
case 1:
case 2:
case 3: Console.WriteLine("i равно 1, 2 или 3м);
break;
case 4: Console.WriteLine("i равно 4м); break;
}
}
}
Слайд 17
![Пример 8 switch(ch1) { case 'A': Console.WriteLine("Эта ветвь А —](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-16.jpg)
Пример 8
switch(ch1) {
case 'A': Console.WriteLine("Эта ветвь А — часть
внешнего оператора switch.");
switch (ch2) {
case 'A': Console.WriteLine("Эта ветвь А — часть внутреннего оператора switch");
break;
case 'В': // ...
} // конец внутреннего оператора switch
break;
case 'В': // ...
}// конец внешнего оператора switch
Слайд 18
![Контрольные вопросы 1. Какие варианты оператора if-else Вы знаете? 2.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/54988/slide-17.jpg)
Контрольные вопросы
1. Какие варианты оператора if-else Вы знаете?
2. В чем заключается
отличие применения оператора if-else от условной операции?
3. Каковы назначение и формат объявления оператора switch?
4. Какие особенности следует учитывать при использовании оператора switch?
5. В каких случаях оператор switch предпочтительнее оператора if?