0

次の関数を読んでください。

public static int getValue(int i) {
    int result = 0;
    switch (i) {
        case 1:
            result = result + i;
        case 2:
            result = result + i * 2;
        case 3:
            result = result + i * 3;
    }
    return result;
}

いつi = 2、出力は何ですか?4だと思いますが、実行で答えは10です。なぜこれが起こるのですか?ケース 3 も実行されるのはなぜですか? i3 ではなく 2 です。考えようとしていますが、なぜこのようなことが起こるのかはまだわかりません。

4

5 に答える 5

11

switch ステートメントではbreak;、後で case ステートメントを実行しないように各ケースが必要です。

于 2013-10-15T02:30:28.113 に答える
0

break;」を使用して、コードが次のケースに自動的に実行されないようにします。

switch (choice)
{
case 0:
  //codes
  break;
case 1:
  //codes
  break;
case 2:
  //codes
  break;
case 3:
  //codes
  break;
}
于 2013-10-19T12:49:20.993 に答える
0

case ステートメントには、次の case ステートメントに入らないようにするための break ステートメントが必要です。

デフォルトのケースがあるのも良い

switch (i) {
    case 1:
        result = result + i;
        break;
    case 2:
        result = result + i * 2;
        break;
    case 3:
        result = result + i * 3;
        break;
    default:
        log.error (...);

}
于 2013-10-15T02:31:34.623 に答える