JAVA编译时出错 (cannot resolve symbol)

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:34:04
public class E4 {
public static void main (String args[]) {
for(int i=2;i<=100;i++) {
for(int j=2; j<=(int)Math.sqrt(i); j++)
if (i%j!=0) continue;
else break;
if (j>(int)Math.sqrt(i))
System.out.print(i+" ");
}
}
}

编译时 它说
E4.java:7: cannot resolve symbol
symbol: variable j
location: class E4
if (j>(int)Math.sqrt(i))
^
1 error
public class E4 {
public static void main (String args[]) {
for(int i=2;i<=100;i++) {
for(int j=2; j<=(int)Math.sqrt(i); j++) {
if (i%j!=0) continue;
else break;
}
if (j>(int)Math.sqrt(i))
System.out.print(i+" ");
}
}
}

加了一组花括弧, 结果完全一样, 错误!
这个程序是 求1至100内的素数

主要是j的问题, 不知道为什麼j的值突然间 没有了.

for 后面少了一个 {

public class E4{
public static void main(String args[]){
for(int i=2;i<=100;i++){
int j = 2;
for(; j<=(int)Math.sqrt(i); j++){
if(i%j!=0){
continue;
}else{
break;
}
}
if(j > (int)Math.sqrt(i)){
System.out.print(i+" ");
}
}
}
}
注:以上是完整代码!

这里要提出一些新手常见的问题:
1.花括号的匹配问题;
2.变量的作用域不明确;
3.编程结构混乱。

起步时,先按照Java规定的语法格式严格认真的练习,养成一个良好的习惯对今后的编码是有利的。

j都跑循环外边了,还能定义上吗
for(int j)
{
}

if(j)
这个j 哪定义的???
-----------
好好看看变量的生命周期吧