Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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 - Fatal编程技术网

Java 循环一次询问太多的输入

Java 循环一次询问太多的输入,java,loops,Java,Loops,最近我一直在学习Java,我遇到了一个关于循环的小问题,我希望程序能做的是,例如,如果用户输入2作为乘客数量,程序会询问两个乘客的姓名,保存他们并打印姓名 其中一个主要问题是,该计划同时要求两名乘客提供详细信息,如下所示: Please enter the number of passengers: 2 Please enter passenger 1 details: Please enter passenger 2 details: count=1; do{

最近我一直在学习Java,我遇到了一个关于循环的小问题,我希望程序能做的是,例如,如果用户输入2作为乘客数量,程序会询问两个乘客的姓名,保存他们并打印姓名

其中一个主要问题是,该计划同时要求两名乘客提供详细信息,如下所示:

Please enter the number of passengers:
2
Please enter passenger 1 details:
Please enter passenger 2 details:
    count=1;
    do{

            System.out.println("Please enter passenger " + count +" details:");
            passengerName=keyboard.nextLine();
            count++;
        keyboard.nextLine();    
    passengerInfo +="\nPassenger "+count+": "+passengerName;

    //ticket printout section
    System.out.println("Ticket");
    System.out.println("======");
    System.out.println("Number of Passengers: "+numOfPassengers);
    System.out.println(passengerInfo);
   }while (count<=numOfPassengers);
   }       
}
此外,它只需要一个名字,并打印在最后,但U应显示该车票上所有乘客的名单:

    count=1;
    do{
        do{
            System.out.println("Please enter passenger " + count +" details:");
            passengerName=keyboard.nextLine();
            count++;

        }while (count<=numOfPassengers);
        keyboard.nextLine();
    }while (count<=numOfPassengers);

    passengerInfo +="\nPassenger "+count+": "+passengerName;
    keyboard.nextLine();

    //ticket printout section
    System.out.println("Ticket");
    System.out.println("======");
    System.out.println("Number of Passengers: "+numOfPassengers);
    System.out.println(passengerInfo);
   }       
}

考虑这些变化-基于这样一个事实,即目前您似乎对保存所有乘客信息的字符串感到满意:

    String passengerInfo = "";
    for(int i = 0; i < numOfPassengers; ++i) {
        System.out.println("Please enter passenger " + (i+1) +" details:");
        passengerInfo +="\nPassenger "+(i+1)+": "+keyboard.nextLine();
    }

    //ticket printout section
    System.out.println("Ticket");
    System.out.println("======");
    System.out.println("Number of Passengers: "+numOfPassengers);
    System.out.println(passengerInfo);
作为下一步,您可能需要考虑将乘客收集到列表中:

    List<String> passengers = new ArrayList<String>();
    for(int i = 0; i < numOfPassengers; ++i) {
        System.out.println("Please enter passenger " + (i+1) +" details:");
        String name = keyboard.nextLine();
        passengerInfo +="\nPassenger "+(i+1)+": "+name;
        passengers.add(name);
    }

试着这样做:

Please enter the number of passengers:
2
Please enter passenger 1 details:
Please enter passenger 2 details:
    count=1;
    do{

            System.out.println("Please enter passenger " + count +" details:");
            passengerName=keyboard.nextLine();
            count++;
        keyboard.nextLine();    
    passengerInfo +="\nPassenger "+count+": "+passengerName;

    //ticket printout section
    System.out.println("Ticket");
    System.out.println("======");
    System.out.println("Number of Passengers: "+numOfPassengers);
    System.out.println(passengerInfo);
   }while (count<=numOfPassengers);
   }       
}

为什么要使用双do/while循环?请使您的标题与您面临的问题相关。这将使其他有相同问题的人更容易找到您的问题和可能的答案。欢迎使用堆栈溢出。你需要考虑一个不同的数据结构列表吗?大堆我想,检查一下那些循环。反正你不会保存每个人的名字。你只需要提示输入一个名字,塞进乘客的名字,然后直接问下一个名字,覆盖上一个名字。呃,读到这个逻辑让我头疼。我不知道twit给你打了什么标记-但这两个答案听起来完全合理:检查passengerInfo+=-下面的附加下一行-这似乎没有什么价值?!你的答案可能会从改进的缩进中受益。对不起,我会编辑下一行。谢谢你指出这一点。