Dhw

while(sc.hasNext())



While



import java.util.Scanner public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in) while(sc.hasNext()) { String str = sc.next() System.out.println(str) } sc.close() } } Enter: I am a student Output: I am a student

Javaでは、while(scanner.hasNext)は常に無限ループです。
スキャナーの次の方法を使用する場合、スキャナーの内容はしばらくの間周期的に読み取られます。 whileの条件はhasNextですが、コンソールはwhileが無限ループになるのを待っていました。問題は、次の方法が使用されていないためと言われていますが、次の方法がしばらくの間使用されているか、無限ループが発生しています。

このスキャナーの入力に別のトークンがある場合、hasNext()メソッドはtrueを返します。このメソッドは、入力がスキャンされるのを待っている間にブロックする場合があります。スキャナーは入力を実行しません。したがって、ループは継続します。
hasNext()のオーバーロードされたメソッドhasNext(String patten)を呼び出すターミネータを設定できます。次のトークンが指定された文字列から構築されたパターンと一致する場合、trueを返します。スキャナーは入力を実行しません。
例:「0」を入力して出力を終了します。



Scanner sc = new Scanner(System.in) while (!sc.hasNext('0')) { System.out.println(sc.next()) }