Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个do循环我做错了什么?_Java_Loops_Do While - Fatal编程技术网

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

Java 这个do循环我做错了什么?,java,loops,do-while,Java,Loops,Do While,我正在尝试编写一个do循环,该循环将继续询问一个人的姓名,直到输入姓名“Bob”。如果名字不是鲍勃,回答应该是“你不是鲍勃”。如果名称为Bob,则响应应为“Hi Bob”(然后循环结束) 您的代码甚至没有编译,因为它必须是name=“Bob”-如果你解决了这个问题,你的代码就像一个魔咒。但主要的问题是,您甚至没有请求输入,因此代码将以一个不是Bob的名称无休止地运行 通过读取输入,一切正常: import java.util.Scanner; public class Test { p

我正在尝试编写一个do循环,该循环将继续询问一个人的姓名,直到输入姓名“Bob”。如果名字不是鲍勃,回答应该是“你不是鲍勃”。如果名称为Bob,则响应应为“Hi Bob”(然后循环结束)


您的代码甚至没有编译,因为它必须是
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"));
    }
}

将第二个if语句更改为else语句。我们通常不会编写
==true
-这是多余的-并且
==false
可以简单地转换为
操作员。
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"));
    }
}