2016-12-03 8 views
1

小さなプログラムを実行しているときに問題が発生しました。ループ内のデータが最初のループと同じでない場合のJava出力

実際には、入力されたデータがと同じであることを確認したいと思います(この場合はループが2回繰り返されます)。それが間違っている場合は、それが正しくないことを最後に出力するはずです。

 int yearInput; 
    int monthInput; 
    int i = 2; 
    int x = 1; 
    int inputvalid; 
    int same = 0; 


    while (x == 1) { 
     while (i >= 1) { 
     System.out.println(i); 
     i--; 
     System.out.println("enter year"); 
     yearInput = kb.nextInt(); 
     System.out.println("enter month"); 
     monthInput = kb.nextInt(); 
     } 

     x--; 
    } 

    same = ???; 

    if(same==0){ 
    System.out.print("Both loop inputs are same"); 
    } 
    else{ 
    System.out.println("Both loop inputs are not same"); 
    } 

    } 

このプログラムは問題を表示するだけですが、xとiの値は実際のプログラムの変数ですが、このセグメントを通過できません。

+0

私は何らかの形で入力にカウンタを追加することを考えていましたか? –

+0

データをどこかに保存できます。配列内にあります。 – SpiderPig

+0

if文の代わりにwhileループを使う理由は何ですか?今は 'x'と' i'は決して変わらないので、無限ループは2つしかありません。 –

答えて

0

最初に2つの配列を使用しているため、ネストされたループが発生します。これは、望ましくないものです。 2つのループの結果を確認したい場合は、ユーザ入力で1つのループを作成し、loopOneResultという変数に格納します。 2番目のループでも同じことができますが、両方のループの外側では、メソッドequalsまたはequalsIgnoreCaseを使用して結果を比較します。これはループが同じかどうかを確実に伝えます。これがこの回答を承認するのに役立つ場合:

+0

しかし、100ループのようなものがあればどうしますか?それを行う唯一の方法は配列を使用しているのですか? –

+0

確かに。順番にネストされたループになるため、ループを使用することはできませんでした。使用するには頭痛になります。 – Aaron

+0

ありがとう!私はその後、配列を学ぼうとします! –

関連する問題