Синтаксис операторов ветвления. Лекция 14 презентация

Содержание

Слайд 2

Условный оператор if

if (логическое_выражение) оператор_1;
[else оператор_2;]
-----------------------------------------------------------------------------------------------------------------
if (условие)
{
// последовательность операторов


}
else
{
// последовательность операторов
}

Слайд 3

Пример 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 < 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

Программа подсчитывает количество очков после выстрела по мишени

Слайд 6

Пример 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 (условие) оператор;
else if (условие)

оператор;
else оператор;
Условные выражения вычисляются сверху вниз - как только обнаружится истинное условие, выполняется связанный с ним оператор, а все остальные операторы в многоступенчатой конструкции опускаются.
Если ни одно из условий не является истинным, то выполняется последний оператор else, а если последний else отсутствует, то никаких действий вообще не выполняется.

Слайд 8

Пример 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 ]
case константное_выражение_2: [

список_опер-в_2 ]
...
case константное_выражение_n: [ список_опер-в_n ]
[ default: операторы ]
}
Заданное выражение (переключатель) в операторе switch должно быть целочисленного типа (char, byte, short или int), перечислимого или же строкового.
Кроме того, константы выбора (константное_выражение_n) должны иметь тип, совместимый с типом выражения.
В одном операторе switch не допускается наличие двух одинаковых по значению констант выбора.

Слайд 10

Оператор множественного выбора switch

Выполнение оператора начинается с вычисления выражения.
Затем управление передается первому оператору

из списка, помеченному константным выражением, значение которого совпало с вычисленным (переключателем). Если совпадения не произошло, выполняются операторы, расположенные после слова default, а при его отсутствии управление передается следующему за switch оператору.

Слайд 11

Оператор множественного выбора switch

Каждая ветвь переключателя должна заканчиваться явным оператором перехода, а именно одним из

операторов break, goto или return:
- оператор break выполняет выход из самого внутреннего из объемлющих его операторов switch, for, while и do;
- оператор goto выполняет переход на указанную после него метку, обычно это метка case одной из нижележащих ветвей оператора switch;
- оператор return выполняет выход из функции, в теле которой он записан.

Слайд 12

Пример 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 + 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

Слайд 15

Пример 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() {
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("Эта ветвь А — часть внешнего оператора

switch.");
switch (ch2) {
case 'A': Console.WriteLine("Эта ветвь А — часть внутреннего оператора switch");
break;
case 'В': // ...
} // конец внутреннего оператора switch
break;
case 'В': // ...
}// конец внешнего оператора switch

Слайд 18

Контрольные вопросы

1. Какие варианты оператора if-else Вы знаете?
2. В чем заключается отличие применения

оператора if-else от условной операции?
3. Каковы назначение и формат объявления оператора switch?
4. Какие особенности следует учитывать при использовании оператора switch?
5. В каких случаях оператор switch предпочтительнее оператора if?
Имя файла: Синтаксис-операторов-ветвления.-Лекция-14.pptx
Количество просмотров: 50
Количество скачиваний: 0