printing语句中的j
被认为是未声明的标识符,如何修复此问题?
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++)
switch(grid[i][j]){
case '.':
colourChange(WHITE);
break;
case 'P':
colourChange(YELLOW);
break;
case 'G':
colourChange(PINK);
break;
case 'W':
colourChange(BLUE);
break;}
printf("%c ", grid[i][j]);
printf("\n");
}
我在for
循环中声明了它,但是它给出了一个错误。另外,如果我注解掉完整的switch
语句,它就可以工作了。
2条答案
按热度按时间b09cbbtk1#
内部
for
循环的主体 * 只是 *switch
语句,因此后面对printf
的调用在内部循环之外。始终使用大括号:
ej83mcc02#
这是因为您的第二个
for
陈述式。因为它没有大括号,所以会假设下一个陈述式Map到它的主体。您的下列printf("%c ", grid[i][j]);
假设没有要考虑的j
,因此无法辨识。固定的解决方案可能是: