Similar presentations:
Синтаксис операторов ветвления. Лекция 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
Структурная блок-схема оператора switchop
"+"
"-"
"*"
"/"
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,
в которой пользователь вводит с
клавиатуры значение
температуры воздуха, и видит на
экране советы о том, как одеться
при такой погоде.