我想使用 switch 语句,我的 if 条件是:

if (userInput%2 == 0 || userInput != 0)

我可以从这段代码中得到两种情况来为 userInput == 0 执行不同的操作,为 userInput == 0 执行不同的操作吗
case ?:

case ?:

最佳答案

您不能,因为满足两个条件的值集重叠。具体来说,所有偶数都满足条件的两个部分。这就是为什么您不能在不首先决定条件的哪一部分优先的情况下执行不同的操作。

您可以在 switch 语句中使用 fall-through 小技巧,如下所示:

switch(userInput%2) {
    case 0:
        // Do things for the case when userInput%2 == 0
        ...
        // Note: missing "break" here is intentional
    default:
        if (userInput == 0) break;
        // Do things for the case when user input is non-zero
        // This code will execute when userInput is even, too,
        // because of the missing break.
        ...
}

关于c - 是否可以使用 OR 将表达式拆分为两种情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14570671/

10-12 13:29