2

次のプログラムの while ループは終了しないため、変数の段落をコンソールに出力しようとする最後の行で出力を取得できません。同様の問題がありますが、解決策は実用的ではなく、実行できませんでした。解決策を提案してください。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {


    public static void main(String[] args) throws IOException {
        String line = "";
        String paragraph = "";

        System.out.println("Enter the text: ");
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader bufferedReader = new BufferedReader(isr);
             while ((line = bufferedReader.readLine()) != null)
             {
                  paragraph = paragraph + line + " ";
             }
          isr.close();
          bufferedReader.close();
          System.out.println(paragraph);
    }//method main ends here

}
4

1 に答える 1

2

コード

while ((line = bufferedReader.readLine()) != null)

null を line に割り当てず、 null を console を介してオブジェクトに割り当てることができない場合、 true になることはありません。つまり、入力を終了するためにキーやその他の文字を入力するなど、何かのためにコーディングする必要があります。

お気に入り

while(!(line.equals("exit")))
{
      //whatever
}

これは、 end で exit と入力すると、プログラムが終了して段落を出力することを意味します。

このスニペットを試すことができます

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

    public class Test {


        public static void main(String[] args) throws IOException {
            String line = "";
            String paragraph = "";

            System.out.println("Enter the text: ");
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader bufferedReader = new BufferedReader(isr);
                 do
                 {
                     line = bufferedReader.readLine();
                      paragraph = paragraph + line + " ";
                 }while(!line.equals("exit"));
              isr.close();
              bufferedReader.close();
              System.out.println(paragraph);
        }//method main ends here

    }
于 2013-05-13T10:19:29.527 に答える