问答详情
源自:4-9 Java循环语句之 for

for循环的特殊格式问题

//问题:代码中两个for循环省略了第一个表达式之后运行结果很奇怪,程序的语句是怎么走的?

package homework;

//求出0-100中质数的个数

public class IsZhiShu {


public static void main(String[] args) {

// TODO Auto-generated method stub

//声明两个变量zishu和sushu,分别代表质数和素数的个数

int zishu = 0;

int sushu = 0;

//i指代2-100的数,这里的i,j提出来是为了增大访问范围,后面输出是能访问到i

int i =2;

int j=2;

//遍历2-100的数

for(;i<=100;i++)           //????????????

{

//判断是否能被整除

for(;j<i;j++)           //???????????

{

//如果能被1和本身以外的数整除,则为质数,且zishu+1;

if(i%j==0)

{

System.out.println(i+"是质数");

zishu ++;

break;

}

}

//进行判断,如果跳出循环时j==i,则说明不存在能整除的数,是素数,sushu+1

if(j==i)

{

System.out.println(i+"是素数");

sushu++;

}

}

System.out.println("质数有"+zishu+"个");

System.out.println("素数有"+sushu+"个");

}


}


提问者:wswzh0329 2016-03-01 22:02

个回答

  • Stick97
    2016-03-02 11:24:11

    一:你的概念有问题。  质数(prime number)又称素数,有无限个。除了1和它本身以外不再有其他的因数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,最小的质数是2。

    二:你的循环中,内层循环执行完成后, j++ 会再执行一次。

    那么你下边判断‘素数’的条件就永远都是不相等的。

  • 少女心就是我的style
    2016-03-01 22:28:01

    你的代码没有注释。。