我在此程序中初始化if语句时遇到问题。程序在每次运行if语句之前终止。谁能告诉我究竟是什么问题?
import java.util.Scanner;
public class attempt1 {
public static void main (String [] args) {
Scanner console = new Scanner(System.in);
String userInput;
boolean done=false;
System.out.println("say something");
userInput=console.nextLine();
if (userInput.equals("stop")) {
done=true;
}
while(done=false) {
System.out.println("it worked!");
}
}
}
答案 0 :(得分:7)
我想你想要这样的东西:
public static void main (String [] args) {
Scanner console = new Scanner(System.in);
String userInput;
boolean done=false;
while(done==false) {
System.out.println("say something");
userInput=console.nextLine();
if (userInput.equals("stop")) {
done=true;
}
}
System.out.println("it worked!");
}
此代码要求用户继续说些什么,直到他们说停止在哪一点打印出来“它有效!”
每次拨打userInput=console.nextLine();
时,程序都会等待你的输入。它没有终止,只是在等待输入。
此外,您希望在比较时使用==。 ==比较值= =分配
答案 1 :(得分:1)
而不是这个构造
if (userInput.equals("stop")) {
done=true;
}
while(done=false) {
System.out.println("it worked!");
}
我想你想说:
done = userInput.equals("stop")
if (!done) {
System.out.println("it worked!");
}
我不确定while
的目的是什么,但你肯定不想在这种情况下使用循环。
答案 2 :(得分:1)
在这里使用do-while
,会更容易:
Scanner console = new Scanner(System.in);
String userInput;
do {
System.out.println("say something");
userInput=console.nextLine();
if(userInput.equals("stop"))
break;
} while(console.hasNextLine());
答案 3 :(得分:0)
您正在使用扫描仪。如果用户没有输入任何数据,该程序将无法运行。尝试使用预设字符串或int或您需要的任何内容运行它。代码看起来很好
答案 4 :(得分:0)
我在这里看到了几个问题。
你确定有下一行吗?可以肯定:
System.out.println(console.hasNextLine())
另外,你的布尔值不正确。请记住,单个'='是一个赋值,'=='表示“等于”。
答案 5 :(得分:-1)
你有一个无限循环。
while(done=false) {
System.out.println("it worked!");
}
这会导致程序崩溃。只需将while(done = false)更改为“else if(!done)”。