Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 范围问题_Java_Scope - Fatal编程技术网

Java 范围问题

Java 范围问题,java,scope,Java,Scope,我不知道我的代码有什么问题,它不会编译,因为编译器找不到变量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++) {

我不知道我的代码有什么问题,它不会编译,因为编译器找不到变量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] = '$';
            }
        }
    }
}

我一直认为这是一个范围问题,但是变量k在嵌套for循环中,所以应该可以,对吗?

在k for循环的末尾有一个分号a;移除它。改变

for(int k = 1; k < (c - 1); k++);
{
    map[i][k] = '$';
}


在k for循环的末尾有一个分号a;移除它。改变

for(int k = 1; k < (c - 1); k++);
{
    map[i][k] = '$';
}


这是因为在下面一行的末尾附加了分号

for(int k = 1; k < (c - 1); k++)

这是因为在下面一行的末尾附加了分号

for(int k = 1; k < (c - 1); k++)
在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(int k = 1; k < (c - 1); k++);
只执行一次

在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(int k = 1; k < (c - 1); k++);

它只执行一次。

在for循环的末尾有一个分号,用于初始化k-删除该分号,就可以了

在for循环的末尾有一个分号,用于初始化k-去掉这个分号,您就可以了

删除第二个for循环后的分号


分号是一个称为null语句的合法语句;那意味着什么也不做

删除第二个for循环后的分号


分号是一个称为null语句的合法语句;那意味着什么也不做

您的代码中有一个小错误:

for(int k = 1; k < (c - 1); k++); // iterate on the empty statement
for(int k = 1; k < (c - 1); k++);

结尾不应该有分号

您的代码中有一个小错误:

for(int k = 1; k < (c - 1); k++); // iterate on the empty statement
for(int k = 1; k < (c - 1); k++);

结尾不应该有分号

在第二个循环的末尾加上分号,删除它,它将有助于你的事业

for(int k = 1; k < (c - 1); k++);
                                ^

在你的第二个循环结束时用分号,去掉它,它将有助于你的事业

for(int k = 1; k < (c - 1); k++);
                                ^

除删除分号外:为变量和类选择更好的名称,并遵守Java命名约定。除删除分号外:为变量和类选择更好的名称,并遵守Java命名约定。lol,谢谢,我非常关注k,我没有看到分号,谢谢,我太专注于k了,我没有看到分号