2016-12-03 5 views
-1

誕生日を比較することで、2人のうちのどちらが年を取っているかを知りたいと思います。誕生日が異なる場合は、1つの正解を返しますが、誕生日が同じ場合は、3つの回答(下に表示)がありますが、これは私の意図ではありません。ifループからの回答を1つだけ取得する方法

Person A is younger 
Person A is younger 
Person A is younger 

1つの回答を得る方法They are same

import java.util.Scanner; 

public class hghfg { 

    public static void main(String[] args) { 
     Scanner A= new Scanner (System.in); 
     System.out.println("Person A Enter Year"); 
     int B= A.nextInt(); 
     System.out.println("Enter Month"); 
     int C= A.nextInt(); 
     System.out.println("Enter Day"); 
     int Z= A.nextInt(); 


     System.out.println("Person B Enter Year"); 
     int D= A.nextInt(); 
     System.out.println("Enter Month"); 
     int E= A.nextInt(); 
     System.out.println("Enter Day"); 
     int F= A.nextInt(); 


     if(B> D){ 
      System.out.println("Person A is older"); 
     } 
     else { 
      System.out.println("Person A is younger"); 
     } 

     if(B==D){ 
      if (C>E){ 
      System.out.println("Person A is older");} 
      else { 
       System.out.println("Person A is younger"); 
        } 
      } 
     if (B==D || C==E){ 
      if (Z>F){ 
       System.out.println("Person A is older");} 
      else { 
       System.out.println("Person A is younger"); 
      } 
      if (B==D || C==E || Z==F){ 
       System.out.println("They are same"); 
      } 
     } 
    } 
} 
+1

'if'は*条件文です。これは* loop *文ではありません。 'for'と' while'はループ文です。 – Andreas

答えて

0
Scanner A = new Scanner(System.in); 
     System.out.println("Person A Enter Year"); 
     int B = A.nextInt(); 
     System.out.println("Enter Month"); 
     int C = A.nextInt(); 
     System.out.println("Enter Day"); 
     int Z = A.nextInt(); 

     System.out.println("Person B Enter Year"); 
     int D = A.nextInt(); 
     System.out.println("Enter Month"); 
     int E = A.nextInt(); 
     System.out.println("Enter Day"); 
     int F = A.nextInt(); 

     if (B < D) { 
      System.out.println("Person A is older"); 
     } else if (B == D) { 
      if (C < E) { 
       System.out.println("Person A is older"); 
      } else if (B == D && C == E) { 
       if (Z < F) { 
        System.out.println("Person A is older"); 
       } else if(B == D && C == E && Z == F) { 
        System.out.println("They are same"); 
       } else { 
        System.out.println("Person A is younger"); 
       } 
      } else { 
       System.out.println("Person A is younger"); 
      } 
     } else { 
      System.out.println("Person A is younger"); 
     } 

これを試してください。これはうまくいくでしょう。この種のシナリオでは、適切なネストされたifを構築する必要があります。 ||の状態を&&の状態に置き換えます。

+0

ありがとうございました –

1

ループが聞かれず、ループが表示されません。 B < DまたはB == Dの場合、最初のelse節は常に「Person A is younger」と表示され、間違っていて、複数の出力を得ている可能性があります。

は、[OK]を

if(B> D) { 
    System.out.println("Person A is older"); 
} else if(B < D) { 
    System.out.println("Person B is older"); 
} else { 
    /* same year; do same pattern for month etc. */  
} 
+0

これは単純なif-elseラダーの練習ですが、その答えをナッジ形式で残しています。 – RamblinRose

0

を開始するには、これを試してみてください、そうJavaであればelse文と呼ばれるものがあります。私はデモンストレーションします。

public class IfelseExample{ 
    int B, D; 
    if(B==D) 
     System.out.println("A sentence"); 
    else if(B>D) 
     System.out.println("A different sentence"); 
    else 
     System.out.println("Another different sentence"); 
} 

BがDに等しい場合、どのようにこのコードはありませんが、それはBがDよりも大きければ、それは「異なる文」を出力し、真ではありませんどちらもあれば、それは「別の異なる文を出力し、「文」を出力します「これが助けてくれることを願っています

関連する問題