2017-08-06 16 views
-3

私はJavaに新しいので、プログラミング自体、私は重大な間違いをしたら私を許してください。私は単に12インチごとに線を印刷したいだけです。すなわち、12,24,36,48インチ後に、144インチまで、ラインを印刷する。私が何をしたかJAVA - インチとメーターの変換を表示します。空白行を12インチごとに出力します。 (1メートルは約39.37インチに等しい)

if(i==12) 
    System.out.println(); 

しかし、空白行が表示されないし、私のコードだけで永遠に走り続けます。

public class Apple { 
    public static void main(String[] args){ 
    double meter; 
    int inch = 1; 

    meter = inch/39.37; 

    for(int i = 0;i <= 12 ; i++){ 
     for(inch =0;inch<=144;inch++){ 
     meter = inch/39.37; 
     System.out.println(inch + " inch = " + meter + " meters"); 
     } 
     if(i==12) 
      System.out.println(); 
      i = 0; /*To reinitialize counter so that it prints a line after each 12 inches*/ 
+3

完全な(書式付きの)メソッドを貼り付けてください – Matt

+0

なぜあなたは 'if'の後に' i = 0'を割り当てますか?これが無限ループを持つ理由です – jeanr

+0

モジュラスについて学ぶにはうまくいくでしょう)演算子。これは、このような問題に直接適用されています。 – STLDeveloper

答えて

1

あなたの外側のループは限りiは以下12に等しいとするためにループし続けます。しかし、12に達すると、ゼロに設定されます。したがって、常にそれは12以下です。それが永遠にループを続ける理由です。

iをチェックせずに内側のループを0から144インチにして、144行目になるまで空白行を印刷しないでください。

コードが表示される方法は、144 * 12 = 1728インチ後に空白行を印刷する必要があります。おそらく気付かなかったでしょうか?

短い話ですが、外側のfor(iループと内側のfor(inchループを1つのループに結合する必要があります。

私はもうあなたの宿題をしないように言うつもりはありません。

+0

実際、私が言ったように、私はプログラミングの概念には新しいです。私はthenewboston.comから学んだら、自分で解決し始めました。しかし、本当にありがとうございます。ありがとう、私はそれを試してみます。 – Adjmo3

関連する問題