在 switch 语句中对同一值执行多个情况

问题描述 投票:0回答:1

我想在 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: case error

c# switch-statement
1个回答
0
投票

我不确定你可以,你需要检查它们是否同时被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
}
© www.soinside.com 2019 - 2024. All rights reserved.