0

最後に出力が必要ですが、プログラムはすべてのエントリの後に出力します。どのような変更をすればよいか教えてください!私のプログラムは、ユーザーが入力したすべての負の数を最大 10 個の数字から並べ替えます。私のプログラムは次のとおりです。

import java.io.*;
public class Task_3
{
    public static void main(String args[])throws IOException
    {
        double a, b;
        InputStreamReader read= new InputStreamReader(System.in);
        BufferedReader in= new BufferedReader(read);
        for(a=1;a<=10;a++)
        {
            System.out.println("Enter your number");
            b=Double.parseDouble(in.readLine());
            if(b<0)
            {
                System.out.println(b);
            }
        }
    }
}

出力画面に表示される結果:

Enter your number
5
Enter your number
6
Enter your number
1
Enter your number
45
Enter your number
874
Enter your number
-547
-547.0
Enter your number
-8
-8.0
Enter your number
-1
-1.0
Enter your number
-5
-5.0
Enter your number
6
4

4 に答える 4

0

そうする:

import java.io.*;
public class Task_3
{
    public static void main(String args[])throws IOException
    {

        InputStreamReader read= new InputStreamReader(System.in);
        BufferedReader in= new BufferedReader(read);
        double[] numMass = new double[10];
        int count = 0;
        for(int a = 0; a < 10; a ++)
        {
            System.out.println("Enter your number");
            double b=Double.parseDouble(in.readLine());
            if(b < 0)
            {
                numMass[count] = b;
                count++;    
            }
        }
        for (int i = 0; i < count; i++) {
            System.out.println(numMass[i]);
        }
    }
}
于 2013-11-06T11:26:36.617 に答える
0

最初に標準入力から 10 個の数値を読み取り、その後それらを一緒に出力したい場合は、最初に数値を格納し、ArrayList次にそれらを個別に出力する必要があります。

public static void main(String args[])throws IOException
{
    double a, b;
    List<Double> numbers = new ArrayList<>();
    InputStreamReader read= new InputStreamReader(System.in);
    BufferedReader in= new BufferedReader(read);
    for(a=1;a<=10;a++)
    {
        System.out.println("Enter your number");
        b=Double.parseDouble(in.readLine());
        if(b<0)
        {
            numbers.add(b); // Store number in list.
        }
    }
    for (Double d : numbers) { // Print out the numbers.
        System.out.println(d + " ");
    }
}
于 2013-11-06T11:27:00.667 に答える
0

フィルタリングされた数値のみを出力したい場合は、 StringBuilder を使用して出力を構成し、入力モードが終了した後に画面に出力できます。

StringBuilder result = new StringBuilder();
for (/* your for loop) {
    /* your input logic */
    if (b < ) {
        result.append(b + "\n");
    }
}
System.out.println(result.toString());

結果の追加処理を実行する必要がある場合 (およびそのために Double 形式が必要な場合)、次の抜粋を使用します。

List<Double> result = new LinkedList<>();
/* same as above instead, BUT */
      result.add(b);
/* ... */

for (Double d : result) {
     /* do your processing of the result here */
}
于 2013-11-06T11:27:08.370 に答える