我正在尝试编写一个程序,用户可以在其中命名机器人并执行任务。我的问题是:
1。)用户首次输入机器人名称后,用户必须输入“enter”键才能显示下一个String。 (我想在用户输入后立即输入名称后出现下一个字符串。)
2。)第一个用户输入后的字符串是(“你确定要命名你的机器人”+ r1.name +“?”);但是,控制台不显示r1.name部分。
编辑:
3。)如果我输入的内容不是1或2.控制台显示:
请输入正确的答案。 您确定要为机器人命名吗?
它不显示我之前输入的名称。无论如何要解决它?
以下是我的代码:
import java.util.Scanner;
class robot {
String name;
double time;
void print() {
System.out.println("My name is " + name + ".");
}
void command() {
}
}
public class t1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
robot r1 = new robot();
System.out.println("Please enter a name for your robot: ");
r1.name = input.nextLine();
boolean confirm = false;
while (confirm == false) {
r1.name = input.nextLine();
System.out.println("Are you sure you want to name your robot "
+ r1.name + "?");
System.out.println("1) Yes");
System.out.println("2) No");
switch (input.nextInt()) {
case 1:
System.out.println("Your robot has been named as " + r1.name
+ ".");
confirm = true;
break;
case 2:
System.out.println("Please enter a name for your robot: ");
r1.name = input.nextLine();
break;
default:
System.out.println("Please enter an appropriate answer.");
break;
}
}
}
}
答案 0 :(得分:0)
如果我理解了您的问题,应该通过评论第一个r1.name = input.nextLine();
来解决问题 -
// r1.name = input.nextLine();
boolean confirm = false;
while (confirm == false) {
r1.name = input.nextLine();
无论如何都要忽略该字符串并输入confirm == false
while循环。那可能是
while (! confirm) { // <-- using NOT.
答案 1 :(得分:0)
您将r1.name = input.nextLine();
设置两次。第二次(在while
循环内),它会读取nextLine()
,而不是您输入的名称。尝试删除其中一个r1.name = input.nextLine();