Сделай Сам Свою Работу на 5

Оператор switch (Справочник по C#)

Операторы if-else

Оператор if выбирает оператор для выполнения на основе значения выражения Boolean. В следующем примере флагу BooleanflagCheck присваивается значение true, а затем он проверяется оператором if. Результат получается следующим: The flag is set to true.

Язык C#

 

bool result = true;

 

if (result == true)

{

Console.WriteLine("The variable is set to true.");

}

else

{

Console.WriteLine("The variable is set to false.");

}

Если выражение в скобках оценивается как "true", то выполняется оператор Console.WriteLine("The boolean flag is set to true."); . После выполнения оператора if управление передается следующему оператору. В этом примере "else" не выполняется.

Если требуется выполнить более одного оператора, условное выполнение нескольких операторов можно организовать, объединив их в блоки с помощью {}, как продемонстрировано в приведенном выше примере.

Оператор, выполняемый после проверки условия, может быть любого типа, включая другой оператор if, вложенный в оригинальный оператор if. Во вложенных операторах if предложение else принадлежит к последнему оператору if, у которого нет соответствующего else. Пример.

Язык C#

 

int x = 12;

int y = 18;

 

if (x > 10)

if (y > 20)

Console.Write("Statement_1");

else

Console.Write("Statement_2");

В этом примере Statement_2 отображается, если условие (y > 20) оценивается как false. Однако если требуется связать Statement_2 с условием (x >10), используйте фигурные скобки:

Язык C#

 

if (x > 10)

{

if (y > 20)

Console.Write("Statement_1");

}

else

Console.Write("Statement_2");

В этом случае Statement_2 отображается, если условие (x > 10) оценивается как false.

Пример

В данном примере вводится символ с клавиатуры, а программа проверяет, является ли введенный символ буквой. Если да, то проверяется, является ли буква прописной или строчной. Во всех случаях отображается соответствующее сообщение.

Язык C#

class IfTest

{

static void Main()

{

Console.Write("Enter a character: ");

char c = (char)Console.Read();

if (Char.IsLetter(c))

{

if (Char.IsLower(c))

{

Console.WriteLine("The character is lowercase.");

}

else

{

Console.WriteLine("The character is uppercase.");

}

}

else

{

Console.WriteLine("Not an alphabetic character.");



}

}

 

/*

Input:

Sample Output

Enter a character: 2

The character is not an alphabetic character.

Additional sample might look as follows:

Run #2:

Enter a character: A

The character is uppercase.

Run #3:

Enter a character: h

The character is lowercase.

* */

}

 

Также можно расширить возможности оператора if, чтобы обрабатывать несколько условий с помощью следующего расположения "if":

Язык C#

 

if (Condition_1)

{

// Statement_1;

}

else if (Condition_2)

{

// Statement_2;

}

else if (Condition_3)

{

// Statement_3;

}

else

{

// Statement_n;

}

 

В этом примере проверяется, является ли введенный символ прописной буквой, строчной буквой или цифрой. В противном случае символ не является буквенно-цифровым знаком. В программе используется цепная схема "else-if".

Язык C#

public class IfTest3

{

static void Main()

{

Console.Write("Enter a character: ");

char c = (char)Console.Read();

 

if (Char.IsUpper(c))

{

Console.WriteLine("Character is uppercase.");

}

else if (Char.IsLower(c))

{

Console.WriteLine("Character is lowercase.");

}

else if (Char.IsDigit(c))

{

Console.WriteLine("Character is a number.");

}

else

{

Console.WriteLine("Character is not alphanumeric.");

}

}

}

/*

Sample Input: E

 

Sample Output:

Enter a character: E

The character is uppercase.

 

Additional sample runs might look as follows:

Run #2

Enter a character: e

The character is lowercase.

Run #3:

Enter a character: 4

The character is a number.

Run #4:

Enter a character: $

The character is not alphanumeric.

*/

 

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 5.3.3.5 Операторы "if"
  • 8.7.1 Оператор "if"

 

Оператор switch (Справочник по C#)

Обновлен: Ноябрь 2007

Оператор switch — это управляющий оператор, обрабатывающий множественное выделение и перечисления путем передачи управления одному из операторов case в своем тексте, как показано в следующем примере:

Пример

Язык C#

int caseSwitch = 1;

switch (caseSwitch)

{

case 1:

Console.WriteLine("Case 1");

break;

case 2:

Console.WriteLine("Case 2");

break;

default:

Console.WriteLine("Default case");

break;

}

Управление передается оператору case, совпадающему со значением оператора switch. Оператор switch может включать любое количество экземпляров case, но два оператора case не могут иметь одинаковое значение. Выполнение текста оператора начинается с выбранного оператора и продолжается до тех пор, пока оператор break не передаст управление за пределы текста case. Оператор перехода, такой как break, требуется после каждого блока case, включая последний блок, вне зависимости от того, какой из двух операторов — case или default — там использован. Язык C# (в отличие от оператора switch в языке C++) не поддерживает неявное "проваливание" от одной подписи оператора case к другой, однако есть одно исключение. Исключением является случай, когда оператор case не имеет кода.

Если ни одно выражение case не совпадает со значением оператора switch, управление передается операторам, следующим за необязательной подписью default. Если подписи default нет, то управление передается за пределы оператора switch.

Язык C#

 

class SwitchTest

{

static void Main()

{

Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large");

Console.Write("Please enter your selection: ");

string s = Console.ReadLine();

int n = int.Parse(s);

int cost = 0;

switch(n)

{

case 1:

cost += 25;

break;

case 2:

cost += 25;

goto case 1;

case 3:

cost += 50;

goto case 1;

default:

Console.WriteLine("Invalid selection. Please select 1, 2, or 3.");

break;

}

if (cost != 0)

{

Console.WriteLine("Please insert {0} cents.", cost);

}

Console.WriteLine("Thank you for your business.");

}

}

/*

Sample Input: 2

 

Sample Output:

Coffee sizes: 1=Small 2=Medium 3=Large

Please enter your selection: 2

Please insert 50 cents.

Thank you for your business.

*/

  • В предыдущем примере переменная целого типа n была использована для экземпляров case оператора switch. Обратите внимание, что также можно использовать непосредственно строковую переменную s. В этом случае можно использовать следующие экземпляры case оператора switch.

 

switch(s)

{

case "1":

// ...

case "2":

// ...

}

В следующем примере демонстрируется, что для пустых подписей оператора case разрешено "проваливание" от одной подписи оператора case к другой.

Язык C#

 

class SwitchTest2

{

static void Main()

{

int n = 2;

switch(n)

{

case 1:

case 2:

case 3:

Console.WriteLine("It's 1, 2, or 3.");

break;

default:

Console.WriteLine("Not sure what it is.");

break;

}

}

}

// Output: It's 1, 2, or 3.

 

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 5.3.3.6 Оператор switch
  • 8.7.2 Оператор switch

 



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.