例如,我想要一个打印出来的循环"你想看电影吗?"直到用户输入"是"。
这是我到目前为止所拥有的:
import java.util.Scanner;
public class Testing {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
do {
System.out.println("Do you want to watch a movie?");
scan.nextLine();
String Answer = scan.next();
}
while (!Answer.equals("yes"));
答案 0 :(得分:5)
您必须在循环范围之外定义Answer
变量:
Scanner scan = new Scanner(System.in);
String answer;
do {
System.out.println("Do you want to watch a movie?");
// scan.nextLine(); you don't need this
answer = scan.next();
}
while (!answer.equals("yes"));
还使用适当的Java命名约定:变量名称应为lowerCamelCase。
答案 1 :(得分:5)
测试条件超出了你读取它的{和}的范围,所以将String answer
(低位)的声明移到do语句之前,这样我们就可以在块之外测试它了(当指令超出它并且是再次执行块的条件时。)
并且,nextLine()返回并消耗readed值,结果就是它。
String answer;
do {
System.out.println("Do you want to watch a movie?");
answer = scan.nextLine();
} while(!answer.equals("yes"));