你的程序跟这个是一样的吧:
for(i=1;i<=n;i++)
for(j=2;j<=i/2;j++)
if(i%j==0)
break;
if(j>i/2)
System.out.println(" "+i);
1.这个内嵌的for语句,当if(i%j!=0)的时候,那个j还做j++吗?
答:会,
for循环的最后一部分是在昨晚所有的循环体后都会执行的。顺便说一句,如果i%j==0了之后,j++反而不会执行了,因为break已经跳出了。
2.会不会
跳出循环呢?这是怎么的一个原理?
答:此时跳出循环的语句不是break,而是j<=i/2,也就是说,在j增加到大于i/2的时候会跳出循环。