java - 将记录存储在 for 循环数组中并显示它们

标签 java arrays loops

我正在尝试创建一个程序来生成机票,然后它会询问用户是否想查看乘客列表。

我遇到的困难是,每个用户输入详细信息后,他们都必须添加到乘客列表中。 因此,如果用户 1 输入他的详细信息,并且必须询问他们是否想要查看乘客列表(到目前为止,乘客列表下只有一条记录),那么当用户 2 输入他的详细信息时,它必须询问用户是否想要查看乘客列表。乘客列表和 User2 详细信息必须添加到乘客列表中(因此乘客列表下将有 2 条记录),依此类推。

请协助。

public class Question12 {

    public static void main(String[] args) {
               double random = Math.random()* 69 + 1;
               String q;
        Scanner in = new Scanner(System.in);
        String[][] PlaneTicket = new String[3][3];

       for (int row = 0; row < 67; row++) {


           System.out.print("Enter name:");        
           PlaneTicket[row][0] = in.next();

           System.out.print("Enter surname: ");
           PlaneTicket[row][1] = in.next();


           System.out.print("Enter a ID: ");
           PlaneTicket[row][2] = in.next();

           System.out.println("************Airport**********");
           System.out.println("Seat number: " +  Math.round(random));
           System.out.println("Name: " + PlaneTicket[row][0]);
           System.out.println("Surname: " + PlaneTicket[row][1]);
           System.out.println("ID: " + PlaneTicket[row][2]);
           System.out.println("*****************************");

           System.out.println("Do you want to view the passanger list: " + "(Yes/No)");
           q = in.next();

          if ("Yes".equals(q))  {
           System.out.println("Name     Surname     ID     Seat Number");
           System.out.println("----------------------------------------");
           System.out.println(PlaneTicket[row][0]+"    "+PlaneTicket[row][1]+"      "+PlaneTicket[row][2]+ "    "+ Math.round(random));   

最佳答案

如果您只想打印到目前为止输入的所有值,您可以这样做:

System.out.println("Name     Surname     ID     Seat Number");
System.out.println("----------------------------------------");

for (int k = 0; k <= row; k++) {   
    System.out.println(PlaneTicket[k][0] + "    " + PlaneTicket[k][1] + "      " + PlaneTicket[k][2] + "    " + Math.round(random));
}

这能回答你的问题吗?

一些评论:

这是您的主要方法,并进行了一些修复,如上所述,请进行一些重新设计(请参阅我的评论):

public static void main(String[] args) {
    final int maxPassengers = 67;

    double random = Math.random() * 69 + 1;
    String q;
    Scanner in = new Scanner(System.in);
    String[][] PlaneTicket = new String[maxPassengers][4];

    for (int row = 0; row < maxPassengers; row++) {
        System.out.print("Enter name:");
        PlaneTicket[row][0] = in.next();

        System.out.print("Enter surname: ");
        PlaneTicket[row][1] = in.next();

        System.out.print("Enter a ID: ");
        PlaneTicket[row][2] = in.next();

        // you should keep the SeatNumber
        PlaneTicket[row][3] = String.valueOf(Math.round(random));

        System.out.println("************Airport**********");
        System.out.println("Seat number: " + PlaneTicket[row][3]);
        System.out.println("Name: " + PlaneTicket[row][0]);
        System.out.println("Surname: " + PlaneTicket[row][1]);
        System.out.println("ID: " + PlaneTicket[row][2]);
        System.out.println("*****************************");

        System.out.println("Do you want to view the passanger list: " + "(Yes/No)");
        q = in.next();

        if ("Yes".equalsIgnoreCase(q) || "y".equalsIgnoreCase(q)) {
            System.out.println("Name     Surname     ID     Seat Number");
            System.out.println("----------------------------------------");

            for (int k = 0; k <= row; k++) {
                System.out.println(PlaneTicket[k][0] + "    " + PlaneTicket[k][1] + "      " + PlaneTicket[k][2] + "    " + PlaneTicket[row][3]);
            }
        }
    }
}

关于java - 将记录存储在 for 循环数组中并显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189885/

相关文章:

python - 如何使用 Tkinter 按钮跳出无限循环?

java - 如何从 JavaScript 调用 Griffon 小程序中的函数?

javascript - 通过连接两个数组创建新数组

java - 如何编写GetItemIndex方法

java - 如何在java中获取矩阵/数组的转置?

java - 用java创建一个循环正方形

excel - 暂停 VBA 循环,直到重新计算工作表

java - 通过符号格式化字符串

java - 如何进行向后和向前兼容性的单元测试?

java - 在最后两行不相同的每一行上写0's and 1'