2

私はJavaを勉強していて、いつか上手になりたいと思っています。今、私はIfステートメントで遊んでいます。遊んでいる間に次のコードを作成しました。

import java.util.Scanner;

class programBegin {
public static void main(String args[]) {

    int myNum;

    Scanner sc = new Scanner(System.in); // Creates variable sc as type Scanner
    System.out.println("Enter a number between 1 and 10: ");
    myNum = sc.nextInt(); // Requests input and will store it as type int.

    if (myNum > 5) {
        System.out.println("Your number is greater than 5.");
    }
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } else {
        System.out.println("Your number is less than 5.");
    }
  }
}

たとえば、6 を入力すると、次のような出力が得られます。

あなたの数字は5を超えています。

あなたの数は5未満です。

前のステートメントが false でない限り、else は実行されるべきではないと思いましたか?

4

8 に答える 8

12

elseの前に がありませんif (myNum == 5)

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else if (myNum == 5) {
    System.out.println("your number is equal to 5.");
} else {
    System.out.println("Your number is less than 5.");
}
于 2012-09-03T18:21:03.160 に答える
2

場合はそれをelseに変更します

if (myNum > 5) {

} else if (myNum == 5) {

} else {

}
于 2012-09-03T18:21:14.363 に答える
1

2 番目の if の直前に else を追加すると、期待どおりに動作します。

于 2012-09-03T18:21:40.117 に答える
1

あなたのコードは、「数値が 5 を超える場合はこれを出力し、数値が 5 の場合はこれを出力し、数値が 5 でない場合はこれを出力する」と同等です。

あなたのelse発言はif (myNum == 5)ではなくに対応していif (myNum > 5)ます。

おそらく、ここで if-else ステートメントを使用したいと思うでしょう。

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else if (myNum == 5) {
    System.out.println("your number is equal to 5.");
} else {
    System.out.println("Your number is less than 5.");
}
于 2012-09-03T18:22:12.800 に答える
0

パフォーマンスを向上させるために使用できます。

ここで、mynumが5より大きい場合、他の2つのifは省略されます。

if (myNum > 5) {
    System.out.println("Your number is greater than 5.");
} else{
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } else if(myNum < 5) {
        System.out.println("Your number is less than 5.");
    }
}
于 2012-09-03T18:35:17.230 に答える
0

これらは、1つではなく2つの異なる'if'ステートメントが実行されています。これを修正する方法はたくさんあります...上記のさまざまな方法を参照してください:)1つの単語を入れないと、異なる出力、この場合は複数の出力が得られる可能性があることを知っておくと興味深いです。この場合、「elseif」がマイナーバグを修正する良い方法になります。あなたの学習プロセスで頑張ってください。

于 2012-09-03T18:35:36.617 に答える
0

最初のif.....ブロックが存在しない.... 2番目のifもチェックし、falseとして..elseに入ります...

この方法で試してみてください....

if (myNum > 5) {
        System.out.println("Your number is greater than 5.");
    }
    if (myNum == 5) {
        System.out.println("your number is equal to 5.");
    } 
   else if(myNum < 5) {
        System.out.println("Your number is less than 5.");
    }

または

   if (myNum > 5) {
            System.out.println("Your number is greater than 5.");
        }
        else if (myNum == 5) {
            System.out.println("your number is equal to 5.");
        } 
       else (myNum < 5) {
            System.out.println("Your number is less than 5.");
        }
于 2012-09-03T18:22:06.543 に答える
0

2 番目の if は常にチェックされ、6!= 5 であるため false を返すため、2 番目の if を else if ステートメントにする必要があります。これは、else が評価されることを意味します。

于 2012-09-03T18:22:06.793 に答える