为什么java中最后一句说a cannot be resolved to a variable
public class first
{
public static void main(String[] args)
{
for(int x=101;x<=200;x++)
{
int a,i;
for(i=2;i<x;i++)
{
if(x%i==0)
break;
}
if(x==i)
{
System.out.println(x);
}
a=a+1;
}
System.out.println("所有的素数个数是"+a);
}
} 展开
不能被解析为一个变量!
出现“a cannot be resolved to a variable”意思是“a不能被解析为一个变量”。因为a定义为局部变量,可是在另一个子程序中使用了它,那肯定找不到。所以出现找不到a这个变量的情况。
解决方法是:将a改为全局变量。
这样既可:
public class first {
public static void main(String[] args) {
int a=0, i;
for (int x = 101; x <= 200; x++) {
for (i = 2; i < x; i++) {
if (x % i == 0)
break;
}
if (x == i) {
System.out.println(x);
}
a = a + 1;
}
System.out.println("所有的素数个数是" + a);
}
}
拓展内容:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
比如说a定义为局部变量,可是在另一个子程序中使用它,那肯定找不到。
解决方法是:将a改为全局变量。
public class first {
public static void main(String[] args) {
int a=0, i;
for (int x = 101; x <= 200; x++) {
for (i = 2; i < x; i++) {
if (x % i == 0)
break;
}
if (x == i) {
System.out.println(x);
}
a = a + 1;
}
System.out.println("所有的素数个数是" + a);
}
}
2013-10-20
这样写试试
int a=0,i;
for(int x=101;x<=200;x++)
{
for(i=2;i<x;i++)
{
if(x%i==0)
break;
}
if(x==i)
{
System.out.println(x);
}
a=a+1;
}
System.out.println("所有的素数个数是"+a);
不行,还是有错误,一样的。。。。。
看上面新的,不是一行的、多行的。