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 程序运行不正常_Java_Loops_While Loop_Boolean - Fatal编程技术网

Java 程序运行不正常

Java 程序运行不正常,java,loops,while-loop,boolean,Java,Loops,While Loop,Boolean,我正在尝试编写一个程序,用户可以在其中命名机器人并在之后执行任务。我的问题是: 一,。在用户第一次输入机器人的名称后,用户必须输入“enter”键才能显示下一个字符串。我希望用户输入后的下一个字符串在立即输入名称后出现 二,。第一个用户输入后的字符串是:您确定要将robot命名为+r1.name+?;但是,控制台不显示r1.name部分 编辑: 三,。如果我输入一个非1或2的值。控制台显示: 请输入适当的答案。 你确定要命名你的机器人吗 它不显示我先前输入的名称。不管怎么说,要修好它吗 以下是我

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

一,。在用户第一次输入机器人的名称后,用户必须输入“enter”键才能显示下一个字符串。我希望用户输入后的下一个字符串在立即输入名称后出现

二,。第一个用户输入后的字符串是:您确定要将robot命名为+r1.name+?;但是,控制台不显示r1.name部分

编辑:

三,。如果我输入一个非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;
        }

    }
}
}

如果我理解您的问题,应该通过注释掉第一个r1.name=input.nextLine来解决这个问题-

无论如何,您都会忽略该字符串,并输入confirm==false while循环。那可能是

while (! confirm) { // <-- using NOT.
设置r1.name=input.nextLine;两次第二次在while循环中,它读取的下一行不是您输入的名称。尝试删除其中一个r1.name=input.nextLine

while (! confirm) { // <-- using NOT.