Оператор goto -это оператор безусловного перехода, используется для передачи управления помеченному оператору.
Оператор goto разрешается использовать в инструкции switch, но его нельзя использовать для проникновения в инструкцию switch.
using System;
class Program {
public static int Main() {
Console.Write("Введите число : ");
decimal a = decimal.Parse(Console.ReadLine());
one: Console.Write("Введите число : ");
decimal b = decimal.Parse(Console.ReadLine());
two: Console.Write("Выберите арифметическое действие '+' '-' '*' '/' '%' : ");
string str = 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("На ноль делить нельзя!");
goto one;
}
else {
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a / b));
}
break;
case "%":
if(b == 0) {
Console.WriteLine("На ноль делить по модулю нельзя!");
goto one;
}
else {
Console.WriteLine("{0} {1} {2} = {3}", a, str, b, (a % b));
}
break;
default:
Console.WriteLine("Вы ввели не тот символ, попробуйте еще!");
goto two;
}
Console.ReadKey();
return 0;
}
}
Введите число : 10
Введите число : 0
Выберите арифметическое действие '+' '-' '*' '/' '%' : /
На ноль делить нельзя!
Введите число : 2
Выберите арифметическое действие '+' '-' '*' '/' '%' : a
Вы ввели не тот символ, попробуйте еще!
Выберите арифметическое действие '+' '-' '*' '/' '%' : /
10 / 2 = 5