2016-07-01 8 views
0

いいえ、コードを実行すると、noを入力するか、falseのものを入力した後、プログラムはElseステートメントにジャンプしません下の方に(ネストされたif_Elseステートメントの外側)何が間違っていますか?私は最初の引数を変更して(yes == true^no == true)、別のブール変数を定義するなど、あなたが名前をつけていることを意味します(yes == true、no == true)いいえ、本当に同様に設定してください!if、ネストされたif、elseステートメント内で2つの意味を持つブール値を使用する方法

import java.util.Scanner; 
public class Flights 
{ 
    public static void main(String args[]){ 
    String txt; 
    boolean yes=true; 

    Scanner type=new Scanner(System.in); 
    int days; 

    System.out.println("Is this a round trip? "); 
    txt=type.next(); 

     if(yes==true){ 
      System.out.println("How many days in advance do you plan to book your flight?: "); 
      days=type.nextInt(); 
      if(days>180)   
       System.out.println("Error: Flights can't be booked for more than 180 days out");  

      else if(days<=180 && days>=14) 
       System.out.println("Your flight cost is: $275"); 

      else if(days<14 && days>=7) 
       System.out.println(" Your flight cost is: $320"); 

      else if(days<7) 
       System.out.println("Your flight cost is: $440"); 
        } 
     else 
      { 
       System.out.println("Enter your discount code"); 

      }     


    } 
} 
+1

yes = txt.equalsIgnoreCase("yes"); if (yes == true) { ... } else { ... } 

あるいは短いです!あなたがそれを変更しなければ、常に真となります。 – 4castle

+0

他の人を次のように設定することを意味しますか?else if(yes!= true){SOP();} \ –

+0

大変ありがとうございます... ...助けてくれてありがとうございます... ... Nguyen Tuan Anhのメソッド働いた!!!今私はちょうどそれらの言葉が笑を意味するものを理解する必要があります。私はコーディングが大好きです... ...でも、ちょっと時間がかかります! –

答えて

1

さて、あなたはtrueyes変数を開始する、とあなたはyestrueの値を比較する条件文を開始する前に、全くそれを更新しませんでした。それが問題です。代わりに、あなたが先に行くとこのようにそれを確認し、

boolean yes=true; 

をして、あなたは、ユーザが入力するのを待つが、yes値を更新しない:あなたが始まる場所です

if(yes==true){ 
} 

この結果、else文には決して達しません。


何を行う可能性は、この行以下、次のとおりです。

txt=type.next(); 

あなたはyes変数の値を更新することができ、このような何か:

txt=type.next(); 
yes = (txt != null) && "yes".equals(txt.toLowerCase()); 

if(yes==true){ 
    //... 
} else { 
} 

は、この情報がお役に立てば幸いです。

1

ユーザ入力に基づいてプログラムが決定するには、txtの値を参照する必要があります。

このような何かにあなたのコードを変更し

:あなたが入力に基づいてyes` `の値を変更することはありません

if (txt.equalsIgnoreCase("yes")) { 
    ... 
} else { 
    ... 
} 
関連する問題