Iva*_*nov 119 c# switch-statement
这就是我想要做的:
switch(myvar)
{
case: 2 or 5:
...
break;
case: 7 or 12:
...
break;
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试了"case:2 || 5",但它没有用.
目的是不为不同的值编写相同的代码.
Jos*_*lio 301
通过堆叠每个开关盒,您可以实现OR条件.
switch(myvar)
{
case 2:
case 5:
...
break;
case 7:
case 12:
...
break;
...
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*ebb 34
你可以通过堆叠案例标签来实现:
switch(myvar)
{
case 2:
case 5:
...
break;
case 7:
case 12:
...
break;
...
}
Run Code Online (Sandbox Code Playgroud)
Ann*_*naR 17
如果你没有另外指定(通过写破解),案例陈述自动落空.因此你可以写
switch(myvar)
{
case 2:
case 5:
{
//your code
break;
}
Run Code Online (Sandbox Code Playgroud)
//等...}
从 C # 8 开始,出现了可读性更好的switch 表达式case
:不再需要和/ 。结合C# 9的逻辑模式::
break;
return
static string GetCalendarSeason(DateTime date) => date.Month switch
{
3 or 4 or 5 => "spring",
6 or 7 or 8 => "summer",
9 or 10 or 11 => "autumn",
12 or 1 or 2 => "winter",
_ => throw new ArgumentOutOfRangeException(nameof(date), $"Date with unexpected month: {date.Month}."),
};
Run Code Online (Sandbox Code Playgroud)
限制:使用此语法,在语句的右侧=>
不能使用花括号({
和}
)。
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.");
}
}
Run Code Online (Sandbox Code Playgroud)
switch(myvar)
{
case 2 or 5:
// ...
break;
case 7 or 12:
// ...
break;
// ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
107311 次 |
最近记录: |