Оператор многовариантного ветвления. Может быть вложенным.
Значение выражения последовательно сравнивается с константами и если они совпадают, то выполняется инструкция.
Синтаксис:
switch(выражение) {
case константа :
инструкции;
break;
...
default:
инструкции;
break;
}
выражение — должно иметь целочисленный тип (int, char) или тип string , использование логических операций или сравнения недопустимо;
case — является меткой и не имеет самостоятельного значения;
значение — соответствовать результату выражения; break или return или throw или goto — являются операторами перехода;
default — использование этого оператора необязательно. В этом блоке можно разместить обработчик непредвиденной ситуации или сообщение о ее возникновении;
Значение выражения последовательно сравнивается с константами и если они совпадают, то выполняется инструкция.
Синтаксис:
switch(выражение) {
case константа :
инструкции;
break;
...
default:
инструкции;
break;
}
выражение — должно иметь целочисленный тип (int, char) или тип string , использование логических операций или сравнения недопустимо;
case — является меткой и не имеет самостоятельного значения;
значение — соответствовать результату выражения; break или return или throw или goto — являются операторами перехода;
default — использование этого оператора необязательно. В этом блоке можно разместить обработчик непредвиденной ситуации или сообщение о ее возникновении;
обычная switch инструкция
Main.cs
usingSystem;classProgram {-
publicstaticintMain() { -
Console.Write("Введите число : "); -
decimala =decimal.Parse(Console.ReadLine()); -
one: Console.Write("Введите число : "); -
decimalb =decimal.Parse(Console.ReadLine()); -
two: Console.Write("Выберите арифметическое действие '+' '-' '*' '/' '%' : "); -
stringstr = Console.ReadLine(); -
switch(str) { -
case"+": -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a + b)); -
break; -
case"-": -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a - b)); -
break; -
case"*": -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a * b)); -
break; -
case"/": -
if(b == 0) { -
Console.WriteLine("На ноль делить нельзя!"); -
gotoone; -
} -
else{ -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a / b)); -
} -
break; -
case"%": -
if(b == 0) { -
Console.WriteLine("На ноль делить по модулю нельзя!"); -
gotoone; -
} -
else{ -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a % b)); -
} -
break; -
default: -
Console.WriteLine("Вы ввели не тот символ, попробуйте еще!"); -
gototwo; -
} -
Console.ReadKey(); -
return0; -
} }
usingSystem;classProgram {-
publicstaticintMain() { -
Console.Write("Введите число : "); -
decimala =decimal.Parse(Console.ReadLine()); -
one: Console.Write("Введите число : "); -
decimalb =decimal.Parse(Console.ReadLine()); -
two: Console.Write("Выберите арифметическое действие '+' '-' '*' '/' '%' : "); -
stringstr = Console.ReadLine(); -
switch(str) { -
case"+": -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a + b)); -
break; -
case"-": -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a - b)); -
break; -
case"*": -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a * b)); -
break; -
case"/": -
if(b == 0) { -
Console.WriteLine("На ноль делить нельзя!"); -
gotoone; -
} -
else{ -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a / b)); -
} -
break; -
case"%": -
if(b == 0) { -
Console.WriteLine("На ноль делить по модулю нельзя!"); -
gotoone; -
} -
else{ -
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a % b)); -
} -
break; -
default: -
Console.WriteLine("Вы ввели не тот символ, попробуйте еще!"); -
gototwo; -
} -
Console.ReadKey(); -
return0; -
} }
Введите число : 10
Введите число : 0
Выберите арифметическое действие '+' '-' '*' '/' '%' : /
На ноль делить нельзя!
Введите число : 2
Выберите арифметическое действие '+' '-' '*' '/' '%' : a
Вы ввели не тот символ, попробуйте еще!
Выберите арифметическое действие '+' '-' '*' '/' '%' : /
10 / 2 = 5
Введите число : 0
Выберите арифметическое действие '+' '-' '*' '/' '%' : /
На ноль делить нельзя!
Введите число : 2
Выберите арифметическое действие '+' '-' '*' '/' '%' : a
Вы ввели не тот символ, попробуйте еще!
Выберите арифметическое действие '+' '-' '*' '/' '%' : /
10 / 2 = 5
вложенная switch инструкция
Main.cs
usingSystem;classProgram {-
publicstaticintMain() { -
one: Console.Write("Выберите умножение '*' или возведение в степень '^' : "); -
stringstr = Console.ReadLine(); -
switch(str) { -
case"*": -
Console.WriteLine("Таблица умножения"); -
Console.Write("Введите число : "); -
bytea =byte.Parse(Console.ReadLine()); -
Console.WriteLine(); -
for(bytei=1; i<11; i++) { -
switch(i) { -
case1: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case2: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case3: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case4: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case5: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case6: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case7: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case8: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case9: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case10: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
} -
} -
break; -
case"^": -
Console.WriteLine("Возведение числа в степень"); -
Console.Write("Введите число : "); -
intb =byte.Parse(Console.ReadLine()); -
Console.WriteLine(); -
for(bytei=1; i<11; i++) { -
switch(i) { -
case1: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case2: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case3: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case4: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case5: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case6: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case7: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case8: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case9: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case10: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
} -
} -
break; -
default: -
Console.WriteLine("Вы ввели не тот символ, попробуйте еще!"); -
gotoone; -
} -
Console.ReadKey(); -
return0; -
} }
usingSystem;classProgram {-
publicstaticintMain() { -
one: Console.Write("Выберите умножение '*' или возведение в степень '^' : "); -
stringstr = Console.ReadLine(); -
switch(str) { -
case"*": -
Console.WriteLine("Таблица умножения"); -
Console.Write("Введите число : "); -
bytea =byte.Parse(Console.ReadLine()); -
Console.WriteLine(); -
for(bytei=1; i<11; i++) { -
switch(i) { -
case1: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case2: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case3: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case4: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case5: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case6: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case7: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case8: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case9: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
case10: -
Console.WriteLine("{0} * {1} = {2}", a, i, (a*i)); -
break; -
} -
} -
break; -
case"^": -
Console.WriteLine("Возведение числа в степень"); -
Console.Write("Введите число : "); -
intb =byte.Parse(Console.ReadLine()); -
Console.WriteLine(); -
for(bytei=1; i<11; i++) { -
switch(i) { -
case1: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case2: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case3: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case4: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case5: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case6: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case7: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case8: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case9: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
case10: -
Console.WriteLine("{0} ^ {1} = {2}", b, i, Math.Pow(b, i)); -
break; -
} -
} -
break; -
default: -
Console.WriteLine("Вы ввели не тот символ, попробуйте еще!"); -
gotoone; -
} -
Console.ReadKey(); -
return0; -
} }
Выберите умножение '*' или возведение в степень '^' : a
Вы ввели не тот символ, попробуйте еще!
Выберите умножение '*' или возведение в степень '^' : ^
Возведение числа в степень
Введите число : 3
3 ^ 1 = 3
3 ^ 2 = 9
3 ^ 3 = 27
3 ^ 4 = 81
3 ^ 5 = 243
3 ^ 6 = 729
3 ^ 7 = 2187
3 ^ 8 = 6561
3 ^ 9 = 19683
3 ^ 10 = 59049
Вы ввели не тот символ, попробуйте еще!
Выберите умножение '*' или возведение в степень '^' : ^
Возведение числа в степень
Введите число : 3
3 ^ 1 = 3
3 ^ 2 = 9
3 ^ 3 = 27
3 ^ 4 = 81
3 ^ 5 = 243
3 ^ 6 = 729
3 ^ 7 = 2187
3 ^ 8 = 6561
3 ^ 9 = 19683
3 ^ 10 = 59049
switch инструкция с провалом
Если после оператора case не стоит оператор break , то происходит так называемый "провал", выполнение переходит к следующему оператору case.
Main.cs
usingSystem;classProgram {-
publicstaticintMain() { -
one: Console.Write("Введите слово 'Понедельник' или 'Вторник' : "); -
stringstr = Console.ReadLine(); -
switch(str) { -
case"Понедельник": -
case"ПОНЕДЕЛЬНИК": -
case"понедельник": -
Console.WriteLine("Вы ввели слово : {0}", str); -
break; -
case"Вторник": -
case"ВТОРНИК": -
case"вторник": -
Console.WriteLine("Вы ввели слово : {0}", str); -
break; -
default: -
Console.WriteLine("Вы ввели не правильно, попробуйте еще"); -
gotoone; -
} -
Console.ReadKey(); -
return0; -
} }
usingSystem;classProgram {-
publicstaticintMain() { -
one: Console.Write("Введите слово 'Понедельник' или 'Вторник' : "); -
stringstr = Console.ReadLine(); -
switch(str) { -
case"Понедельник": -
case"ПОНЕДЕЛЬНИК": -
case"понедельник": -
Console.WriteLine("Вы ввели слово : {0}", str); -
break; -
case"Вторник": -
case"ВТОРНИК": -
case"вторник": -
Console.WriteLine("Вы ввели слово : {0}", str); -
break; -
default: -
Console.WriteLine("Вы ввели не правильно, попробуйте еще"); -
gotoone; -
} -
Console.ReadKey(); -
return0; -
} }
Введите слово 'Понедельник' или 'Вторник' : вторник
Вы ввели слово : вторник
Вы ввели слово : вторник