程序运行不正常

时间:2014-08-11 17:09:34

标签: java loops while-loop boolean

我正在尝试编写一个程序,用户可以在其中命名机器人并执行任务。我的问题是:

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;
        }

    }
}
}

2 个答案:

答案 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();