Java 不打印、循环和数组错误

Java 不打印、循环和数组错误,java,arrays,loops,if-statement,methods,Java,Arrays,Loops,If Statement,Methods,我必须创建一个包含10行的数组,每行有6列(它应该像一个船的座位表)。此外,我还必须为这些地点指定乘客姓名,并打印座位表。我必须通过请求输入乘客姓名和所需座位(行和列)来填充数组。如果座位可用,则分配给乘客。如果座位已经分配好了,我必须要求另一排和另一列。我必须不断重复这个输入过程,直到行值输入为负数 之后,我必须打印乘客座位表,将所有未分配的座位列为“空” 但是,我的程序没有按我希望的方式运行。这就是我到目前为止所做的: public static void main (String [] a

我必须创建一个包含10行的数组,每行有6列(它应该像一个船的座位表)。此外,我还必须为这些地点指定乘客姓名,并打印座位表。我必须通过请求输入乘客姓名和所需座位(行和列)来填充数组。如果座位可用,则分配给乘客。如果座位已经分配好了,我必须要求另一排和另一列。我必须不断重复这个输入过程,直到行值输入为负数

之后,我必须打印乘客座位表,将所有未分配的座位列为“空”

但是,我的程序没有按我希望的方式运行。这就是我到目前为止所做的:

public static void main (String [] args)
    {
        Scanner kb = new Scanner (System.in);
        String [][] Seats = new String [10][6];

        int row, column;
        String name;

        do {
            System.out.println ("Please enter your name");
            name = kb.nextLine();

            System.out.println ("Please enter a row or input a negative number to stop");
            row = kb.nextInt();

            if (row < 0) {
                SeatingChart (Seats);
            }

            System.out.println ("Please enter a column");
            column = kb.nextInt();

            if (Seats [row][column] == null) {
                Seats [row][column]= name;
            } else {
                System.out.println("Sorry this seat is alredy assigned");
            }
        }
        while (row >= 0);
    }

    public static void SeatingChart (String Seats[][])
    {
        for ( int r = 0; r< Seats.length ; r++) {
            for (int c = 0; c< Seats[r].length; c++) {
                if (Seats[r][c]==null) {
                    System.out.print("empty");
                } else {
                    System.out.print(Seats[r][c]+ " ");
                }
            }
        }
        System.out.println();
        System.out.println();
    }
}
publicstaticvoidmain(字符串[]args)
{
扫描仪kb=新扫描仪(System.in);
字符串[][]席位=新字符串[10][6];
int行,列;
字符串名;
做{
System.out.println(“请输入您的姓名”);
name=kb.nextLine();
System.out.println(“请输入行或输入负数以停止”);
row=kb.nextInt();
如果(行<0){
座位表(座位);
}
System.out.println(“请输入一列”);
column=kb.nextInt();
if(座位[行][列]==null){
席位[行][列]=名称;
}否则{
System.out.println(“对不起,这个座位已经安排好了”);
}
}
而(行>=0);
}
公共静态无效座位图(字符串座位[])
{
对于(int r=0;r
这是你想要的吗

//change kb.nextLine()
name = kb.next();

我将所有这些放在另一个声明中:

System.out.println ("Please enter a column");
column = kb.nextInt();

if (Seats [row][column] == null)
    Seats [row][column]= name;

else
    System.out.println("Sorry this seat is alredy assigned");
我还要补充一点

System.out.println ("Please enter your name");
name = kb.nextLine();
在前面提到的else语句中,在请求列之前或之后

我要改变的另一件事是座位的显示方式。我建议用10 x 6的格式。您可以使用额外的if语句来实现这一点。在“empty”之后添加空格也有助于提高可读性。如下所示:

for ( int r = 0; r< Seats.length ; r++)
            for (int c = 1; c<= Seats[r].length; c++)
            {
                if (Seats[r][c-1]==null)
                    System.out.print("empty ");
                else
                System.out.print(Seats[r][c-1]+ " ");

                if((c % 6) == 0) {
                    System.out.println("\n");
                }

            }
for(int r=0;r对于(int c=1;cw你得到了什么-错误结果、部分结果、错误或异常?@AMY它只是停止提问