我正在制作一个程序,并尝试打印10x10的电路板。如果我的对象坐标匹配i和j循环整数的迭代,那么如果循环不应该打印' - ',则应该打印对象的char。但是在我的第三个嵌套循环上,因为15个对象坐标与程序不匹配,所以打印过量的' - '。当一个坐标匹配时,我如何简单地打印char,同时保持板形式。 董事会应该是这样的
. . . . . . . . a .
. . e . . . b . . .
. . . . . . . . . .
. . . .c . . . . . .
. . . . . . . d . .
. . g . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . h . . . . .
. . . . . . . . . .
我的打印方法代码是
public static void printGrid(bumpercar bcar[], int NUMCARS)
{
//nested loop
for(int j = 0; j < 16; j++)
{
System.out.printf("\n");
for(int k = 0; k<16; k++)
{
for(int l = 0; l<NUMCARS; l++)
{
if((bcar[l].getX() == k) && bcar[l].getY() == j)
System.out.printf("%s", bcar[l].getCarSymbol());
else
System.out.printf("- ");
}
}
}
}
导致类似
的内容..........ķ.................................... ................................. ......................................... .................................................. .............................. ................................................ .................................................ñ .............................. ......................................... ....................一世............................. .............................. ......................................... ..........................˚F.....................即...........................升。 ........................... ........................ ^ h ... MP .................. ..Ø ......Ĵ.................... ............. .............ç...摹................................ .............................. ..............乙............ ..................................一个............... ......................... d .... .................................. .................................................. .............................. ................................................
任何想法如何格式化if语句以实现此目的?感谢
答案 0 :(得分:1)
将最里面的循环更改为:
boolean found = false;
for(int l = 0; l<NUMCARS; l++)
{
if((bcar[l].getX() == k) && bcar[l].getY() == j) {
System.out.printf("%s", bcar[l].getCarSymbol());
found = true;
break;
}
}
if (!found) {
System.out.printf("- ");
}
答案 1 :(得分:0)
问题在于,每当您找到不需要在给定单元格的汽车时,您就会打印一个角色。
固定代码:
public static void printGrid(bumpercar bcar[], int NUMCARS)
{
//nested loop
for(int j = 0; j < 16; j++)
{
System.out.printf("\n");
for(int k = 0; k<16; k++)
{
int l;
for(l = 0; l<NUMCARS; l++)
{
if((bcar[l].getX() == k) && bcar[l].getY() == j) break;
}
if (l == NUMCARS) {
// no car at this location
System.out.printf("- ");
} else {
System.out.printf("%s", bcar[l].getCarSymbol());
}
}
}
}