一件有趣的事,大家来看一下呐,几分钟就够

 static int qiuHe(int shu)
{
    int he=0;
    for (int s=0;s<=shu;s++);
    {
        he+=s;
    }
    return he;
}
public static void main(String[] args)
{
    int he = qiuHe(100);
    System.out.println(he);
}

  1. 这段代码编译时,在he+=s这条语句提示找不到符号s;但是如果直接在主方法中写相同的代码

``` public static void main(String[] args)
    {
            int j=4;
            int he=0;
            for(int i=0;i<=j;i++)
            {
                he+=i;
            }
            System.out.println(he);
    }
就会编译通过,而且结果正确,这是怎么回事呢?希望正在学习java的一起来探讨一下


你上面的那个shu是什么啊?看不懂

for (int s=0;s<=shu;s++);
多了一个分号

因为s在循环里定义的,你有一个分号,那么下面he+=s不在循环里,s当然没有定义了。

for后面是定义语句,不加分号。

for (int s=0;s<=shu;s++);
{
    he+=s;
}
return he;

    for后面多了一个分号
    去掉分号就行了没有区别