2016-10-27 1 views
-1

これは繰り返しの質問かもしれませんが、本当に助けが必要です。 だから私は、入力された番号が必要です、forループからそれは合計を取得します。 たとえば、5を入力すると、forループは1 + 2 + 3 + 4 + 5のようになり、結果を表示します。私のforループがすべての値を合計する必要があります

ここにコードがあります。

package test; 

import java.util.Scanner; 
import java.lang.String; 
import javax.swing.JOptionPane; 


public class test { 

    public static void main(String[] args) { 

     Scanner x =new Scanner(System.in); 
    System.out.println("Enter a number"); 
    int res = x.nextInt(); 
    int end = res; 

     while(res<=0){ 
      System.out.println("Not good enter again"); 
      res = x.nextInt(); 
     } 

     for(int ans=0; ans<end; ans++){ 
      int sum = ans; 
      System.out.println(sum); 
     } 

    } 
} 
+2

forループの外側に 'sum'を宣言します。 forループの各繰り返しで再作成されています。 –

+1

一般的なアドバイス。 1)アルゴリズムを紙に書いてください。 2)あなたのコードが何をしているかを見るためにprintステートメントを追加します。 3)デバッガを使用します。 4)[小さなプログラムをデバッグする方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –

+0

三角形の数を計算するためにループは必要ありません。 – shmosel

答えて

0

あなたがしなければならないのはこれです:

int sum=0;//<-Declare your sum here and initialize to zero 
for(int ans=1; ans<=end; ans++){ 
    sum = sum+ans; //add every element here with the previous sum 
} 

System.out.println(sum); 
+0

@ジョニー、@クリケット急いで誤植..編集 –

0

あなたのコードは次のようにする必要があります:

あなたがループ内で宣言するかのように、ループの外の和を宣言する必要がありますすべての反復で以前の値が失われます。

Scanner x =new Scanner(System.in); 
System.out.println("Enter a number"); 
int res = x.nextInt(); 
int end = res; 

while(res<=0){ 
    System.out.println("Not good enter again"); 
    res = x.nextInt(); 
} 
int sum = 0; 
for(int ans=0; ans<end; ans++){ 
    sum = sum + ans; 
} 

System.out.println(sum); 
} 

さらに、合計をforループの外側に出力する必要があります。

関連する問題