2016-04-19 9 views
-1
public class IfElseIf { 
    /**operators for if statements 
    * Less than (<) 
    * Greater Than (>) 
    * Less than or Equal To (<=) 
    * Greater Than or Equal To (>=) 
    * And (&&) 
    * Not (!) 
    * Or (||) 
    * Has the value (==) 
    */ 

    public static void main(String[] args) { 
     int user = 50; 

     if (user <= 21){ 
      System.out.println("User is 21 or younger."); 
     } 


     else if (user > 21 && user < 60){ 
      System.out.println("User is between 21 and 59."); 
     //you can have as many else if statements as you want. 
     } 


     else if (user == 50 || user == 55){ 
      System.out.println("User is either 50 or 55"); 
     } 


     else { 
      System.out.println("User is older than 60"); 
     }/**else signifies that any value outside of the 
     *parameters set should show this message. 
     */ 
    } 
} 

私はJavaを使い慣れていません。私はJavaを学ぼうとしています。これはコーディング方法を学ぶ私の最初の日です。このプログラムを実行しようとしているので、2番目のelse ifステートメントのメッセージが表示されますが、ユーザー変数を55に変更してプログラムを実行すると、最初のelse ifステートメントのメッセージが表示されます。 2番目のelse if文を無視するのはなぜですか?javaプログラムelse if文を無視する[NOOBIE]

答えて

0

の範囲(彼らは同様に本当かもしれないとしても)他の人が無視を取得しながら、真である第1の文は、実行されます。 値が '55'の場合、最初のele-ifステートメント(user > 21 && user < 60)がtrue(21 60)であるため、実行されます。

2番目の条件を確認したい場合は、else-ifを単純な0​​に変更することがありますので、新しいif-elseの「サイクル」が再度開始されます。あなたのコードで

+0

ありがとう!私は自分の笑顔でそれを分かったはずだと思う。私はこれを念頭に置いておきます。ありがとうございました! – KyleBinson

+0

なぜ私の答えが下落したのかは分かりませんが、もしこの人の答えではなく、私の答えがあなたの人に受け入れられたなら、深くお詫びしますが、おそらくdownvoting/stackoverflowの概念を理解していないでしょう。お互いを助けるコミュニティです! ... – nicost

0

最初の一致が見つかると、条件文が直ちに停止するためです。 if-elseステートメントを使用している場合

ので、二if elseカバーが22から59

+0

はとても迅速に対応いただき、ありがとうございます! – KyleBinson

+0

あなたは歓迎です、これがあなたを助けることを願って –

0

「他(ユーザー> 21 & &ユーザー< 60)があれば、」条件がスキップされた場合

条件はあなたがそうユーザー= 55を使用する場合、最初に満足して他の隣にあります。

0

elseブロックの順序は重要です。 55が> 21,<であるので、最初のelse ifブロックが実行され、プログラムはelse文を終了します。したがって、2番目のものが取り込まれます。 "else if(user> 21 & & user < 60){"とすると、期待通りに動作します。

0

値が55の場合、以下の条件が常に満たされ、trueを保持しても次のelse-if文には入りません。

else if (user > 21 && user < 60){ 
        System.out.println("User is between 21 and 59."); 
       //you can have as many else if statements as you want. 
       } 

ご注文を元に戻すと、期待どおりに動作します。以下に示すように

else if (user == 50 || user == 55){ 
      System.out.println("User is either 50 or 55"); 
     } 

else if (user > 21 && user < 60){ 
      System.out.println("User is between 21 and 59."); 
     //you can have as many else if statements as you want. 
     } 

また、それを変更することができます。

else if (user > 21 && user < 50){ 
      System.out.println("User is between 21 and 49."); 
     //you can have as many else if statements as you want. 
     } 


     else if (user == 50 || user == 55){ 
      System.out.println("User is either 50 or 55"); 
     } 

     else if (user >50 && user< 55){ 
      System.out.println("User is between 51 to 54"); 
     } 
     else 
{ 
System.out.println("User is older than 55"); 
}