这个do循环我做错了什么?

时间:2018-01-10 16:11:40

标签: java loops do-while

我正在尝试编写一个do循环,在输入名称“Bob”之前将继续询问某个人的姓名。如果名称不是Bob,则响应应为“您不是Bob”。如果名称是Bob,则响应应为“Hi Bob”(然后循环结束)。

public class loopExtra3 {

    public static void main(String[] args) {
        String name;
        name=Bob;

        do {
            System.out.println ("What is your name?");

            if (name.equals("Bob") == false) {
                System.out.println("You're not Bob");
            }
            if (name.equals("Bob") == true) {
                System.out.println("Hi Bob");
            }
        } while (name.equals("Bob") == false);
    }
}

1 个答案:

答案 0 :(得分:2)

你的代码甚至没有编译,因为它必须是name="Bob"; - 如果你解决这个问题,你的代码就像魅力一样。但主要问题是你甚至没有要求输入,所以代码将无限运行,而不是Bob的名字。

阅读输入后,一切正常:

import java.util.Scanner;
public class Test {

    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String name;
    do {
        System.out.println("What is your name?");
        name = sc.nextLine();
        if (!name.equals("Bob")) {
        System.out.println("You're not Bob");
        }
        else {
        System.out.println("Hi Bob");
        }
    } while (!name.equals("Bob"));
    }
}