我想在 switch 语句中对相同值执行多个情况
此代码打印从 1 到 100 的列表。 如果数字能被 3 整除,则写入 Fizz。如果数字能被 5 整除,则写入 Buzz。如果该数字可被 3 和 5 整除,则写入 FizzBuzz。 不是在
i%3 == i%5 == 0
中创建此案例,而是只允许读取 i%3 == 0
和 i%5 == 0
案例以查找相同的关键字?因此,对同一关键字执行不同情况下的代码。
for (int i = 1 ; i<101 ; i++) //counts 1-100
{
Console.Write($"\n{i}");
switch(i%3, i%5) //test if number is divisible by 3 or 5
{
case (0, 0): //divisible by 3 AND 5
Console.Write("FizzBuzz");
break;
case (0, int): //divisible by 3
Console.Write("Fizz");
break;
case (int, 0): //divisible by 5
Console.Write("Buzz");
break;
}
}
我想删除 case(0,0),同时允许在 case (0, int) 和 case (int, 0) 中分析 i。所以我会用更少的代码得到相同的输出 对我来说最明显的解决方案是删除break;s,但是,VSCODE:
我不确定你可以,你需要检查它们是否同时被3和5整除,然后检查它们是否分别被3和5整除。想想看,如果您手动执行此操作,则需要检查这些条件。
最好的选择是使用 if 语句:
if(i%3 == 0 && i%5 ==0){
//Fizz buzz
}else if(i%3 == 0){
//Fizz
}else if(i%5 ==0 ){
//buzz
}else{
//neither
}