【发布时间】:2014-01-16 22:45:17
【问题描述】:
我在使用需要搜索包含座位价格信息的最终静态数组(简单学校项目)的方法时遇到问题。
座位价格数组如下(称为sealingArray):
10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10
10 10 20 20 20 20 20 20 10 10
10 10 20 20 20 20 20 20 10 10
10 10 20 20 20 20 20 20 10 10
20 20 30 30 40 40 30 30 20 20
20 30 30 40 50 50 40 30 30 20
30 40 50 50 50 50 50 50 40 30
在代码中,我有一个方法需要搜索数组并找到包含该价格的所有座位。如果它找到与价格匹配的座位,它会将价格添加到具有相同尺寸 (9x10) 的空二维数组(称为matchedSeats)中。
这是我目前所拥有的,它目前用价格而不是匹配的座位填充整个数组。
static void price()
{
Scanner inputInt = new Scanner(System.in);
System.out.println("What price seat are you looking for? ("
+ "$10, $20, $30, $40, $50)");
int price = inputInt.nextInt();
if((price < 10 || price > 50) || price % 10 != 0)
{
System.out.println("Incorrect price.");
price();
}
int[][] matchedSeats = new int[9][10];
for(int i = 0; i < ROWS; i++)
{
for(int j = 0; j < COLUMNS; j++)
{
if(seatingArray[i][j] == price)
{
matchedSeats[i][j] = price;
}
}
}
}
*只是快速编辑,错误是当打印匹配座位数组时,数组中的所有值都被用户输入的价格变量覆盖。我从充满鳗鱼的气垫船那里得到了答案:条件语句中的逻辑检查出来了,但是我使用的打印方法导致了错误。
【问题讨论】:
-
你的问题是?
-
您发布的代码和您描述的不当行为似乎不匹配。事实上,你的代码对我来说看起来不错。你确定它行为不端?你在哪里打印出matchedSeats数组来测试它?
-
price()方法似乎是正确的。我有一种感觉 OP 可能有一些被错误更新的全局静态。 -
我相信你是对的,我重新创建了这个类并且只使用了这个方法和一个打印方法并且它工作正常。有几个全局静态干扰它,我在原始类中的打印方法遇到了关于行的逻辑错误。感谢您的评论!