-2

10 個の文字列を含む文字列配列をインスタンス化しました。私は基本的に、10 個の文字列がすべて終了するまで、またはユーザーが「q」を入力して終了するまで、サブジェクト名を入力するようにユーザーに求めたいと考えています。これが発生したら、String 配列要素を printArray メソッドで出力する必要があります。これは私がこれまでに持っているものですが、「The Array Elements:」の後に各値に対して「null」値が表示され、合計 10 個の文字列が作成されます。これは、10 回すべてではなく数回入力した後に「q」を入力すると発生します。「null」値を取り除きたいのですが、ユーザーが「q」を入力しない場合、10 番目のエントリの後に、10 個の配列を表示する必要があります。

{
    // Instantiate a String array that can contain 10 items.
    String[] array = new String[10];

    // Read names of subjects into this array
    // and count how many have been read in.
    // There may be fewer than 10.
    Scanner input = new Scanner(System.in);

    System.out.println("Please enter a subject name or enter q to quit: ");
    String subject = input.nextLine();
    int i=0;
    while (!"q".equals(subject))
    {
        array[i]=subject;
        i++;


        System.out.println("Please enter a subject name or enter q to quit: ");
        subject = input.nextLine();
    }
    input.close();
    System.out.println("The Array Elements:");



    // Call printArray to print the names in the array.
    printArray(array);
}


/**
 * Method printArray prints the String values 
 * in a partially-filled array, one per line.  Only the 
 * significant items in the array should be printed.
 */
public static void printArray(String[] args)
{

    for(String val : args)
        System.out.println(val);
}
4

3 に答える 3

1
 String quit = "q";

while (!"q".equals(quit))

これはと同じです

 while(!true)

そのため、while ループの中に入ることはありません。

確認する必要があると思います

 while (!subject.equals(quit))
于 2014-09-19T04:54:49.347 に答える
0
for(i=0i<10;i++)
{
    System.out.println(array[i]);
}

関数を呼び出す場所にこれを置くだけです。配列を表示するために別のメソッドを呼び出さないでください。

于 2014-09-19T04:57:45.683 に答える