我不知道我的代码有什么问题,因为编译器无法找到变量k,所以无法编译。
我的代码:
public class t
{
public static void main(String args[])
{
int r = 10;
int c = 10;
char[][] map = new char[r][c];
for(int i = 1; i < (r - 1); i++)
{
for(int k = 1; k < (c - 1); k++);
{
map[i][k] = '$';
}
}
}
}
错误它给了我:
symbol: variable k
location: class t
1 error
我一直认为这是一个范围问题,但是variable k
在嵌套的for循环中,所以应该没问题呢?
答案 0 :(得分:4)
你的“k”for循环结尾有一个分号;去掉它。变化
for(int k = 1; k < (c - 1); k++);
{
map[i][k] = '$';
}
到
for(int k = 1; k < (c - 1); k++)
{
map[i][k] = '$';
}
答案 1 :(得分:3)
您的代码中存在一个小错误:
for(int k = 1; k < (c - 1); k++);
最后不应该有分号。
答案 2 :(得分:2)
在第二个循环结束时使用分号,将其删除,这将有助于您的事业
for(int k = 1; k < (c - 1); k++);
^
答案 3 :(得分:1)
因为在下线末尾有额外的分号......
for(int k = 1; k < (c - 1); k++)
答案 4 :(得分:1)
for(int k = 1; k < (c - 1); k++);
放弃;
;
实际上是一个在Java中有效的空语句:
Foo f = new Foo();
;
f.doSomething();
在Java中,您可以拥有一个没有大括号{
}
的控制语句,例如:
if(booleanFlag) doSomething();
else doSomethingElse();
// ...
for(String s : stringArray) System.out.println(s);
这就是您在代码中使用的内容:
for(int k = 1; k < (c - 1); k++); // iterate on the empty statement
然后,您打开了一个与for循环无关的新代码块:
{
map[i][k] = '$';
}
只执行一次。
答案 5 :(得分:1)
for loop
末尾有一个分号,用于初始化k
- 删除它,你应该没问题!
答案 6 :(得分:1)
在第二个for
循环后删除分号。
分号是一种称为空语句的合法语句;这意味着“什么都不做”。