2017-10-21 19 views
-1

ユーザーから範囲を取得し、範囲内の各偶数を追加して画面に印刷するプログラムを作成する必要があります。私はどのようにforループの各数値を追加するのか把握するのに苦労しています。範囲が5〜10の場合、画面は答えとして24を表示します。以下は私のコードです。forループを使用して範囲内に偶数を追加する方法

//worksheet 4 - question 3 
//asks user for a range. Adds even numbers in range and prints their sum. 

import java.util.Scanner; 

class P3LoopRange 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

     int initial, finalValue; 

     System.out.print("Enter a start value: "); 
     initial = input.nextInt(); 

     System.out.print("Enter a second value: "); 
     finalValue = input.nextInt(); 

     while (finalValue <= initial) 
     { 
      System.out.println("Second value must be larger than start value."); 
      System.out.print("Enter a second value: "); 
      finalValue = input.nextInt(); 
     } 

     int range = finalValue - initial; 

     int x = 0 

     for (int i = initial; i <= finalValue; i++) 
     { 
      if (i%2==0) 
      { 
       int x = x+i; 

      } 
     } 
     System.out.printf(x); 
    } 
} 
+0

解かれ、再びif文でXを宣言いけません。 – Tacolibre

答えて

1

xローカル変数の2倍を宣言します。
重複するローカル変数を持つことは合理的ではありません。
さらに、ループ内で宣言すると、繰り返しごとに上書きされます。
ループの前に宣言するだけで問題ありません。

int x = 0; 

for (int i = initial; i <= finalValue; i++) 
{ 
    if (i%2 == 0) 
    { 
     x = x + i; 

    } 
} 
+0

ありがとうございます。私はこれを試しましたが、終了コード1でエラーが表示されます。最終的な印刷ステートメントは正しい場所にありますか? –

+0

正しい場所にあります。 'printf()'でコンパイルしていますか?それはしないでください。 'int'を出力するには' printf() 'ではなく' print() 'を使うべきです。 – davidxxx

+0

私は何とかセミコロンを削除しました。ご協力いただきありがとうございます。 –

1

int x = x+i;からx=x+i;に変更してください。ここでは毎回xを初期化しています。

1

問題がである:int x = x+i;

だけintを削除し、あなたの問題は

関連する問題