if служит для разветвления программы на два направления. Если некоторое условие выполняется, то программа идет в одну сторону, если не выполняется - то в другую. Вот сразу пример, определяющий, четное или нечетное число ввел пользователь:
...
class Class1 {
...
static void Main(string[] args) {
//преобразование строки в целое число
int k = Int32.Parse(Console.ReadLine());
if(k%2==0) {
Console.WriteLine("Четное число");
}
else {
Console.WriteLine("Нечетное число");
}
Console.ReadLine();
} }
Как и в других C-подобных языках, фигурные скобки можно не писать в случае одного оператора. Также написание веточки else тоже не является необходимым - все зависит от конкретной задачи.
С# требует, чтобы условные операторы принимали в качестве условий только булевы значения. Операторы сравнения: больше чем (>), меньше чем (<) или равно (= =) достаточно понятны и просты в использовании.
Оператор if в инструкции сравнения может применять несколько инструкций, объединенных логическими операторами. В качестве последних используются операторы (&&—И), (|| —ИЛИ) и (! —НЕ).
switch(выражение) {
case константное_выр_1:
[операторы_1; оператор_перехода_1;]
case константное_выр_K:
[операторы_K; оператор_перехода_K;]
[default: операторы_N; оператор_перехода_N;]
}
Оператор switch примеряется тогда, когда программа должна разделится более чем на два направления (т. е. будем двигаться или сюда, или сюда, или сюда). Логика оператора switch следующая: «найти значение, соответствующее переменной для сравнения, и выполнить соответствующее действие». Иными словами, он работает как оператор выбора нужного действия.
Пример:
int k = Int32.Parse(Console.ReadLine());
Console.WriteLine(k.ToString());
switch (k){
case 1:
case 2:
Console.WriteLine("Неудовлетворительно");
break;
case 3:
Console.WriteLine("Удовлетворительно");
break;
case 4:
Console.WriteLine("Хорошо");
break;
case 5:
Console.WriteLine("Отлично");
break;
default:
Console.WriteLine("Ошибка");
break;
}
В приведенном примере в зависимости от введенного пользователем числа на экран выводится та или иная оценка. Если число k не лежит в промежутке от 1 до 5, то выполняются операторы по метке default и выводится надпись "Ошибка". Метка default не обязательна. Обратите внимание на оператор break. Если в некоторой метке case или default есть операторы, то написание break обязательно. Так, в следующих двух кусках кода есть ошибки:
...
case 1:
Console.WriteLine("Совсем неудовлетворительно");
//Ошибка! Тут пропушен break
case 2:
Console.WriteLine("Неудовлетворительно");
break;
...
...
default:
Console.WriteLine("...");
//Ошибка! Тут пропушен break
}
Для придания программе большей читабельности создание переменных, необходимых для использования, лучше всего объявлять непосредственно перед их применением. Так, если каждый блок case использует свой набор переменных, то и объявление переменных следует делать внутри блоков case.
В приведенном примере переменная k была целочисленного типа. Если вам необходимо использовать в качестве условия оператора switch переменную строкового типа, то вы можете сделать это следующим образом:
саsе "Сергей":
Если строк для сравнения много, то по аналогии с целочисленной переменной k используйте несколько инструкций case.
Вот пример использования строковой переменной в качестве условия оператора switch.
Console.WriteLine("Здравствуйте новый пользователь"); break;
}}}
В данном случае для идентификации пользователя вам необходимо применить не числовое значение, а строку. Если вы введете строку «userl», то на экране появится сообщение «Здравствуйте пользователь один».
Операторов перехода, позволяющих прервать естественный порядок выполнения операторов блока, в языке C# несколько.