基本上我想在阵列中存储有关火车的信息。我相信我需要使用二维数组。我似乎无法让它正常工作。我想要一个阵列,让我跟踪火车每辆车上空座位和预留座位的数量。这对我有用吗?
int[][] seats = new int[4][10];
for (int row = 0; row < 4; row ++)
for (int col = 0; col < 10; col++)
car[row][col] = 0;
我想要将所有座位初始化为0,表示它们是空的。我目前在int [4] [10]之后的半冒号上收到一条错误消息,它说“预期,{”
答案 0 :(得分:4)
您的代码有效,唯一的错误是car
应为seats
:
int[][] seats = new int[4][10];
for (int row = 0; row < 4; row++)
for (int col = 0; col < 10; col++)
seats[row][col] = 0;
答案 1 :(得分:2)
那么你的第一个问题是你有一个名为“seat”的数组,但你正在尝试初始化一个名为“car”的东西。像这样的循环嵌套而不包括'{','}来划分它们至少是坏的风格,并且可能让编译器感到困惑?以下作为我的冠军。
int[][] seats = new int[4][10];
for ( int rowIx = 0; rowIx < seats.length; rowIx++ ) {
for ( int colIx = 0; colIx < seats[rowIx].length; colIx++ ) {
seats[rowIx][colIx] = 0;
}
}
......虽然没有波浪线但它的效果同样好但我觉得更难读。我也认为你应该习惯于询问阵列的长度,而不是假设固定大小。这就是seat.length和seat [rowIx] .length调用中发生的事情。
答案 2 :(得分:1)
尝试一下,看看它是否有帮助。我认为IDE正在寻找初始化语法,因为这就是你在循环中所做的。我可能会错误地知道发生了什么,但代码会为你编译。
int[][] seats = new int[4][10];
{
for (int row = 0; row < 4; row++) {
for (int col = 0; col < 10; col++) {
seats[row][col] = 0;
}
}
}
答案 3 :(得分:0)
使用基本类存储信息。
class TrainCar
{
private int _emptySeats;
private int _totalSeats;
public TrainCar( int total )
{
_totalSeats = total;
_emptySeats = total;
}
public bool fillSeats( int num )
{
_emptySeats -= num;
if( _emptySeats < 0 )
{
_emptySeats += num;
return false;
}
return true;
}
public int getFilledSeats()
{
return _totalSeats - _emptySeats;
}
public int getEmptySeats()
{
return _emptySeats;
}
}
然后只使用TrainCar类的数组(或ArrayList
)
TrainCar[] cars = new TrainCar[ NUM_CARS ];
for( int i = 0; i < cars.length; ++i )
cars[i] = new TrainCar( SEATS_PER_TRAINCAR );
答案 4 :(得分:0)
在第四行,汽车需要更换座椅。使用{}跟踪循环也是一种很好的形式,即使对于单行也是如此。
int[][] seats = new int[4][10];
for (int row = 0; row < 4; row ++)
{
for (int col = 0; col < 10; col++)
{
seats[row][col] = 0;
}
}
答案 5 :(得分:-1)
这里不遵循循环语句的语法:需要大括号!