-1

整数の配列をループする for ループがあります。配列内のすべての要素の合計を取得しようとしています。これをループで実行できますか?

以下のコード:

    int numOfValues;

    //prompt user for number of values
    System.out.print("How many values? ");
    numOfValues = input.nextInt();

    int[] values = new int[numOfValues];        

    for(int i=1; i<numOfValues;i++)
    {

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
        int sum += 0 + values[i];
        System.out.print(sum);
    }

この行の整数sum += 0 + values[i];

すべての配列要素の値を合計しようとしているところですが、間違っていると思います。合計ではなく、実際の数値を出力するだけです。

4

8 に答える 8

4

int sumfor ループの外側を宣言する

すなわち

 int sum =0;  
for(int i=0; i<numOfValues;i++)
    {

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
         sum += values[i];
        System.out.print(sum);
    }

編集:@Orin指摘されたように

また

ゼロ インデックスで for ループを開始する

于 2013-04-19T18:05:41.677 に答える
3

ループの外側で int sum を宣言する

    int sum =0;  
for(int i=0; i<numOfValues;i++)
    {

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
         sum += values[i];
        System.out.print(sum);
    }
于 2013-04-19T18:06:57.397 に答える
3
  1. Javaでは配列の要素は0から始まります。したがって、あなたforも0から始める必要があります。
  2. ループの前に合計を宣言する
  3. ループの前に合計を 0 に初期化する
  4. ループ後に合計を出力します。

変更されたプログラム

int numOfValues;

//prompt user for number of values
System.out.print("How many values? ");
numOfValues = input.nextInt();

int[] values = new int[numOfValues];        

int sum = 0;
for(int i=0; i<numOfValues;i++)
{

    System.out.print("Value " + i + " :");
    values[i] = input.nextInt(); 
    sum += values[i];
}

System.out.print(sum);
于 2013-04-19T18:07:45.043 に答える
3

直し方:

sum変数をループの外に置く

int sum = 0
for(int i = 1; i < numOfValues; i++)
{

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
        sum += values[i];
        System.out.print(sum);
}

理由:

ループが繰り返されるたびに変数を定義するため、合計の値は保存されません。一度定義するだけで、継続的にsumの値に値を追加できます。

さらに:

あなたが言ったので:

配列内のすべての要素の合計を取得しようとしています

配列内のすべての要素を反復するには、開始インデックスから反復を開始する必要があります。配列の開始インデックスは ではあり0 ません 1。したがって、これを変更する必要があります。

for(int i = 1; i < numOfValues; i++)

for(int i = 0; i < numOfValues; i++)

さらに、参考までに

sum += values[i];と同等ですsum = sum + values[i];

于 2013-04-19T18:07:57.813 に答える
2

変数 sum は、配列のループごとに常に初期化されます。

これを試して:

int sum =0;  
for(int i=1; i<numOfValues;i++)
{

    System.out.print("Value " + i + " :");
    values[i] = input.nextInt(); 
     sum += values[i];
    System.out.print(sum);
}
于 2013-04-19T18:08:53.363 に答える
1
int sum = 0;
for(int i=0; i<numOfValues;i++)
{
    System.out.print("Value " + i + " :");
    values[i] = input.nextInt(); 
    sum += values[i];
 }
 System.out.print(sum);
于 2013-04-19T18:07:28.623 に答える
1

最初に宣言する

sum = 0;

そしてループ内で使用

sum += values[i];

また、配列はゼロから始まることに注意してください。幸運を。

于 2013-04-19T19:02:46.300 に答える
0

この方法を試してみてください

   System.out.print("How many values? ");
   numOfValues = input.nextInt();
   int[] values = new int[numOfValues];        
   int sum = 0;
   for(int i=0; i<numOfValues;i++)
   {
       System.out.print("Value " + i + " :");
       values[i] = input.nextInt(); 
       sum += values[i];
   }
   System.out.print(sum);
于 2013-04-19T18:11:24.290 に答える