Ответ 1
Устанавливая каждый случай коммутатора, вы достигаете условия ИЛИ.
switch(myvar)
{
case 2:
case 5:
...
break;
case 7:
case 12:
...
break;
...
}
Это то, что я хочу сделать:
switch(myvar)
{
case: 2 or 5:
...
break;
case: 7 or 12:
...
break;
...
}
Я пробовал использовать "case: 2 || 5", но это не сработало.
Цель состоит в том, чтобы не писать один и тот же код для разных значений.
Устанавливая каждый случай коммутатора, вы достигаете условия ИЛИ.
switch(myvar)
{
case 2:
case 5:
...
break;
case 7:
case 12:
...
break;
...
}
Вы делаете это с помощью ярлыков флагов стека:
switch(myvar)
{
case 2:
case 5:
...
break;
case 7:
case 12:
...
break;
...
}
case 2:
case 5:
do something
break;
Заявления о случаях автоматически проваливаются, если вы не укажете иначе (путем записи перерыва). Поэтому вы можете написать
switch(myvar)
{
case 2:
case 5:
{
//your code
break;
}
//и т.д.... }
Пример для оператора switch показывает, что вы не можете складывать непустые case
s, но должны использовать goto
s
// statements_switch.cs
using System;
class SwitchTest
{
public 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, or3.");
break;
}
if (cost != 0)
Console.WriteLine("Please insert {0} cents.", cost);
Console.WriteLine("Thank you for your business.");
}
}