2016-11-28 6 views
0

に入った場合、私は、ユーザーが何かを入力した場合にのみ、whileループを中断できるようにする必要があります。それ以外の場合はループを続行します。ユーザーが何か

しかし私は、これは何かが移動する前に入力されるまでループを待つことになりますif (scanner.nextLine())を使用してみました。

にはどうすれば何かが入力されるまでループを継続維持することができますか?

while (true) { 
    if (scanner.nextLine()) { 
    // statements 
    } 

    // standard loop statements 
} 
+9

HMは、1が 'ループの外break'だろうか... – janos

+0

はおそらくちょうど'変えながら、(真の) ''にしばらく(!scanner.hasNext()) '。 – Gendarme

+1

_hasNext()_がブロックされています。一般に、IOのブロックはあなたが望むものではありません。代わりに、ファイルの存在を確認するのはどうですか? –

答えて

1

ユーザーが1文字を入力するときにループを終了したい場合は、KeyEventをリッスンする必要があります。ユーザーは、ゼロ以上の文字の行を入力し、Enterキーヒットするまで、あなたは待つことができる場合でも、あなたはBufferedReaderの準備の方法を使用することができます。

InputStreamReader inputStream = new InputStreamReader(System.in); 
BufferedReader bufferedReader = new BufferedReader(inputStream); 
while(true) 
{ 
    if (bufferedReader.ready()) 
    { 
     String s = bufferedReader.readLine(); 
     // do stuff before exiting loop 
     break; 
    } 
    // do stuff in loop 
} 
+0

しかし、これは私が間違ってそれを言葉で表現、私の問題に正解です。私は代わりにスレッドを使用して終了しました。 –

関連する問題