【发布时间】:2014-04-02 02:30:13
【问题描述】:
我正在使用 Eclipse 和 JDK 8 创建一个用 Java 编写的程序。我使用以下代码创建了一个 Scanner:Scanner input = new Scanner(System.in);
然后我使用代码String command = "no"; 创建了一个String
我计划在我的代码中使用这个字符串来控制while 循环,以及while 循环中的switch。循环以:while(command = "no") 开始,在while 循环中,我使用之前创建的Scanner 让用户定义String 和int 的值,在执行代码时,作品。之后(但仍在while循环内,我将command = input.nextLine();,后跟input.close();放在下一行,设置command字符串的值,并关闭Scanner。但是当我执行代码,它似乎跳过了那个,以及我直接放在后面的switch(它也应该由command字符串控制),然后在while循环之后继续编码,即使@987654341 @ 仍设置为“否”,这应该会使 while 循环重新开始。
如何让代码暂停并等待在command = input.nextLine(); 输入内容,以及如何让switch 正常工作?
这是完整的代码:
`import java.util.Scanner;
class Human {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
String name = this.name;
return name;
}
public int getAge() {
int age = this.age;
return age;
}
}
public class Asdfghjkl {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String command = "no";
int age;
String name;
while(command == "no") {
System.out.println("Welcome to HUMAN CREATOR");
System.out.println("What is the human's name?");
name = input.nextLine();
System.out.println("Okay, its name is " + name + ".");
System.out.println("What about its age?");
age = input.nextInt();
System.out.println(name + " is " + age + " years old.");
System.out.println("Is this correct?");
command = input.nextLine();
switch (command) {
case ("yes"):
System.out.println("Great! Lets make the human!");
Human h1 = new Human();
h1.setAge(age);
h1.setName(name);
case ("no"):
System.out.println("Okay, lets start again.");
}
}
System.out.println("qwerty");
input.close();
}
}
【问题讨论】:
-
你使用的是 java 6 还是 java 7?
-
@HovercraftFullOfEels 只回答了我一半的问题……我该如何解决
scanner不起作用的问题?我尝试了.equals而不是==,但它似乎没有用 -
@newuser:看起来它必须是 7,否则它不应该编译。
-
@HovercraftFullOfEels 只回答了我的一半问题......我该如何解决
scanner不起作用的问题?我尝试了.equals而不是==,但它似乎没有用 -
用户:您似乎正在关闭 Scanner 变量、输入、while 循环的 inside,在您完成使用它之前问题,为什么?在while循环之后关闭它不是更有意义吗,以便它在循环的每次迭代中仍然可用?
标签: java while-loop switch-statement java.util.scanner