这是我第一次访问本网站。我对java和编码非常陌生,因此我很可能需要深入解释。我正在编写一个程序,需要12名学生,并将他们放在5行,6列阵列教室的座位上。我必须防止出界异常,并防止学生坐在已经填补的位置。 我需要帮助以确保学生不会占用已经填补的席位。我不知道该怎么做。到目前为止,这是我的代码:
public class Classroom
{
public static void printArray(char[][] array)
{
for(int row=0;row<5;++row)
{
System.out.print("| ");
for(int col =0;col<6;++col)
System.out.print(array[row][col] + "| ");
System.out.println();
}
for(int col =0;col<6;++col)
System.out.print("---");
System.out.println();
}
public static void main()
{
Scanner reader = new Scanner(System.in);
char[][] array = new char[5][6];
for(int i =0;i<5;++i)
for(int j=0;j<6;++j)
array[i][j] = ' ';
printArray(array);
for(int x =1;x<14;++x)
{
System.out.print("Choose column (1-6) for a student: ");
int column = reader.nextInt();
System.out.print("Choose row (1-5) for a student: ");
int row = reader.nextInt();
if(column <1 || column>6 || row<1 || row>5)
{
System.out.println();
System.out.println("Column should be from 1 to 6. Row should be from 1 to 5.");
System.out.println("The program will restart from student 1.");
System.out.println();
x=1;
for(int i =0;i<5;++i)
for(int j=0;j<6;++j)
array[i][j] = ' ';
continue;
}
for(int i =0;i<5;++i)
for(int j=0;j<6;++j)
array[row-1][column-1] = 'S';
printArray(array);
}
}
}
答案 0 :(得分:0)
if (array[row-1][column-1] == 'S') {
System.out.println("This seat is taken! Please choose another.");
continue;
}
当他们尝试进入已经拍摄的座位时,将打印到控制台。您只需要检查当前行/列是否包含某个人,或者在您的情况下,是否包含值'S'
您应该在从扫描仪读取行后立即添加此项,以防止它执行其余代码。