Java 这个do循环我做错了什么?
我正在尝试编写一个do循环,该循环将继续询问一个人的姓名,直到输入姓名“Bob”。如果名字不是鲍勃,回答应该是“你不是鲍勃”。如果名称为Bob,则响应应为“Hi Bob”(然后循环结束)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
您的代码甚至没有编译,因为它必须是
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"));
}
}