3

次の入力から次の出力を達成しようとしています。

Sample input:
3 4
2 1
4 5
-1

Sample output:
7
3
9

これまでのところ、プログラムですべての計算を行っており、ユーザーが負の数を入力するとプログラムが終了します。私の問題は、上記の形式で印刷するのに問題があることです。私の入力/出力のサンプルは以下のとおりです。

9 9
8 8
9 -8
[18, 16]

これまでの私のコードは次のとおりです。

import java.util.ArrayList;
import java.util.Scanner;
    public class sums{
     public static void main(String[]args){
         int addition = 0;
         int previous = 0;
         ArrayList<String> sums = new ArrayList<String>();
         String sumsy = new String("");
         for (int i=0; i<=i;){
             Scanner in = new Scanner(System.in);
             previous = in.nextInt();
             if (previous<0){
                 break;
             }
             else {
                 addition = in.nextInt();
                 if (addition<0) {
                     break;
                 }
                 else {
                     addition += previous;
                     sums.add(addition+"");
                 }
             }
         } System.out.println(sums);
     }
}

答えはどこかで区切り文字 ("/n") を使用し、int の配列を文字列として出力することにあると思います。

申し訳ありませんが、これらの小さなことは私を完全に逃してしまいます。誰かが私を正しい方向に向けることができますか?

ありがとうございました!-ヘレン

4

4 に答える 4

3
for (String sum : sums) System.out.println(sum)

代わりにこれを使用してください

System.out.println(sums)
于 2012-09-20T20:40:50.303 に答える
1

System.outPrintStreamオブジェクトであり、そのprintlnメソッドはさまざまな型に対してオーバーロードされています。

この場合、 sums は であるためArrayList、 を呼び出しています。これは、渡されたオブジェクトをprintln(Object x)呼び出すことによって機能し(次に、 if does not equalを呼び出します)、結果の を出力します。String.valueOf(x)x.toString()xnullString

String基本的に、またはプリミティブ以外のものを に渡す場合、printlnそれがどのように出力されるかの詳細をオブジェクトのクラスに委譲します。この場合、ArrayListはライブラリ クラスであるため、これを制御することはできません。

希望どおりに機能させるには、次のように合計値を反復処理する必要があります。

for (String someSum : sums) {
    System.out.println(someSum);
}

このループ構文に慣れていない場合は、このページの後半を参照してください: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

于 2012-09-20T23:24:46.683 に答える
0

sums は文字列ではなく文字列のリストであるため、出力しても目的の結果は得られません。2 つのオプションがあります。 for(String i : sums){ System.out.println(i); }

または、合計を文字列ビルダーにして実行することもできsums.append(addition)ます System.out.println(sums.toString())

于 2012-09-20T20:47:12.000 に答える
0

本当にArrayListを使用する必要がありますか? IMO、これにより、必要以上に複雑になります。入力例から、数値の各ペアを単純に合計したいようです。これには配列は必要ないようです。2 つの数値を足し合わせて、すぐに結果を出力することができます。

于 2012-09-20T20:48:40.387 に答える