switchステートメントを使用したいのですが、次の場合の条件は次のとおりです。
if (userInput%2 == 0 || userInput != 0)
このコードから2つのケースを取得して、のために異なるアクションを実行し、のために異なるアクションを実行することはできますかuserInput == 0
?userInput == 0
case ?:
case ?:
switchステートメントを使用したいのですが、次の場合の条件は次のとおりです。
if (userInput%2 == 0 || userInput != 0)
このコードから2つのケースを取得して、のために異なるアクションを実行し、のために異なるアクションを実行することはできますかuserInput == 0
?userInput == 0
case ?:
case ?:
2 つの条件を満たす値セットが重複しているため、できません。具体的には、すべての偶数が条件の両方の部分を満たします。そのため、条件のどの部分が優先されるかを最初に決定せずに、さまざまなアクションを実行することはできません。
switch
次のように、ステートメント内でフォールスルーを使用してちょっとしたトリックを行うことができます。
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.
...
}
if
ステートメントを分割しない理由
if (userInput%2 == 0) {
// something
}
else if (userInput != 0) {
// something else
}
すべてのゼロ以外の偶数は両方のテストを満たすため、テストの順序が重要になることに注意してください。