問題が発生しました。以下は、ユーザーに入力を求め、ユーザーが入力した単語を 1 語ずつ出力するコードです。
問題は、プログラムが決して終了しないことです。私の限られた理解では、while ループ内でスタックしているようです。誰か私を少し助けてくれませんか?
import java.util.Scanner;
public class Test{
public static void main(String args[]){
System.out.print("Enter your sentence: ");
Scanner sc = new Scanner (System.in);
while (sc.hasNext() == true ) {
String s1 = sc.next();
System.out.println(s1);
}
System.out.println("The loop has been ended"); // This somehow never get printed.
}
}
ベストアンサー1
新しい文字列を取得し続けて、空でない場合はループを続行します。終了文字列のループにコントロールを挿入するだけです。
while(!s1.equals("exit") && sc.hasNext()) {
// operate
}
ループ内で文字列を宣言し、文字列が「exit」の場合はループ本体で操作を実行しない場合は、次のようにします。
while(sc.hasNext()) {
String s1 = sc.next();
if(s1.equals("exit")) {
break;
}
//operate
}