如何创建一个检查输入验证的do-while循环

时间:2018-02-08 18:12:57

标签: java

例如,我想要一个打印出来的循环"你想看电影吗?"直到用户输入"是"。

这是我到目前为止所拥有的:

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"));

2 个答案:

答案 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"));