Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 打印两次donno为什么_Java_Printing - Fatal编程技术网

Java 打印两次donno为什么

Java 打印两次donno为什么,java,printing,Java,Printing,我有一个问题,当我打破了从删除部分的代码打印主菜单选项两次 代码中没有错误,运行正常,但为什么打印两次而不是一次 public void mainloop() { for (int i = 0; i < 100; i++) { String x; System.out.println("Please Select your option"); System.out.println(".......................

我有一个问题,当我打破了从删除部分的代码打印主菜单选项两次

代码中没有错误,运行正常,但为什么打印两次而不是一次

 public void mainloop() {
    for (int i = 0; i < 100; i++) {

        String x;

        System.out.println("Please Select your option");
        System.out.println("............................");
        System.out.println("1 ADD NAME AND NUMBER \n2 REMOVE NAME AND NUMBER \n3 SEARCH NAME AND NUMBER \n0 EXIT");
        System.out.println("............................");

        x = input.nextLine();

        if (x.equalsIgnoreCase("0")) {
            System.out.println("Thank you!");
            break;
        }
        if (x.equalsIgnoreCase("1")) {
            String Name;
            String Number;

            System.out.println("Please Enter your Name below");
            Name = input.nextLine();
            System.out.println("Please Enter your Number below");
            Number = input.nextLine();
            System.out.println("");
            System.out.println("Your Name " + Name + " and Number " + Number + " has been saved!\n");

            objectclass objectclassObject = new objectclass(Name, Number);
            Test.add(objectclassObject);
        }
        if (x.equalsIgnoreCase("2")) {

            System.out.println("-------ALL NAME AND NUMBERS-------");
            System.out.println("");

            for (int j = 0; j < Test.size();) {
                objectclass p = Test.get(j++);
                System.out.println(j + ". Name: " + p.getName() + " - " + p.getNumber());
            }
            for (int j = 0; j < Test.size(); j++) {
                System.out.println("");
                System.out.println("Enter Index number to remove Contact from Phonebook!");
                int v = input.nextInt();
                int temp = (v - 1);
                if (v >= 1 && v <= Test.size()) {
                    System.out.println("Name: " + Test.get(temp).getName() + " And Number: " + Test.get(temp).getNumber() + " has been removed!!");
                    System.out.println("");
                    Test.remove(temp);
                } else {
                    System.out.println("Please enter number properly!!");
                }
                break;
            }
        }
        if (x.equalsIgnoreCase("3")) {
            String y;
            System.out.println("*** Enter your Name below for search ***");
            y = input.nextLine();

            for (objectclass p : Test) {
                String z = p.getName();
                if (z.equalsIgnoreCase(y)) {
                    System.out.println("Your Name is: " + p.getName() + "\nYour Number is: " + p.getNumber());
                    System.out.println("");
                }
                if (!z.equalsIgnoreCase(y)) {
                    System.out.println("Contact not found!!!");
                }
            }
        }
    }
}

这会打印两次:/~

如@Aeshang所述,请使用开关而不是if。 其次

块不会在之前结束

if (x.equalsIgnoreCase("3")) {

删除部分还包括搜索部分。不确定这是否能解决问题,但首先纠正这些问题并检查您的答案。

如果打印两次,则循环执行了两次。读取变量“x”后,尝试显示它。我打赌在合法输入之间有额外的空字符串


结果是nextInt()不使用换行符。因此,下次读取x时,您将读取值v之后的行尾。

首先更改if to switch语句,使其在您的情况下可读。.我对java不熟悉。。。学习内容1乘1:我不认为我的删除部分包括搜索部分:显示我可以修复它吗?使用input.nextLine()跟随您的输入。
if (x.equalsIgnoreCase("2")) {
if (x.equalsIgnoreCase("3")) {