Лекция 14   Синтаксис операторов ветвления
Условный оператор if
Пример 1
Пример 2
Пример 3
Пример 3
Многоступенчатая конструкция if-else-if
Пример 4
Оператор множественного выбора switch
Оператор множественного выбора switch
Оператор множественного выбора switch
Пример 5
Пример 5
Пример 5
Пример 6
Пример 7
Пример 8
Контрольные вопросы
Домашнее задание
100.19K
Category: programmingprogramming

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

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

Лекция 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;
if (a < b && (a > d || a == 0)) b++;
else { b *= a; a = 0; }
if (a < b)
if (a < c) m = a;
else m = c;
else
if (b < c) m = b;
else m = c;
if (b > a) max = b;
else max = a;
// 1
// 2
// 3
// 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
op
"+"
"-"
"*"
"/"
res = a + b
res = a - b
res = a * b
res = a / b
break
break
break
break
default
res=double.NaN
ok = false
break

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?

19. Домашнее задание

Напишите программу с
использованием оператора switch,
в которой пользователь вводит с
клавиатуры значение
температуры воздуха, и видит на
экране советы о том, как одеться
при такой погоде.
English     Русский Rules