简单的java for循环

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:40:28
public class Test {
public static void main(String[] args) {
int i =1,j =2;
for(i=1,i<=100,i++) {
for(j=2,j<=i,j++){
if(i%j==0)
break;
if(j>i/2)
System.out.println(i +"是素数");
}
}
}
}
请各位帮小弟分析一下上面的程序,是如何循环的?每循环一次对应的i.j各等于多少?比如当i=1时j该为多少,i=2~~~~~最好能分析到i=9时,

i = 1 --不做因为: j 》2
i=2 -----j=2 第一个if语句有效 跳出第二个for

i=3-------j=2 3%2=1 第一个if不做 j=2》3/2=1 打印3;j=3 3%3 = 0;出循环

i=4-------j=2 4%2=0 出循环;

i=5-------j=2 5%2=1 第一个if不做 2》5/2=2 不打印;j=3 5%3=2;j=3 》5/2=2 打印5;j=4 5%4=1;j=4》5/2=2 打印5;

i=6-------j=2 6%2=0 出循环;

i=7-------j=2、3、4、5、6 7/2 7/3 7/4 7/5 7/6 第一个if都不做,看第二个if 7/2 = 3,所以 j=4、5、6符合第二个 全打印;

i=8-------j=2 8%2=0 出循环;

i=9-------j=2 9%2=1 ; 第二个if j=2《 9/2 = 4 不打印;j=3 9%3=0 出循环

i=1
j=

i=2
j=2,

i=3
j=2,3,

i=4
j=2,

i=5
j=2,3,4,5,

i=6
j=2,

i=7
j=2,3,4,5,6,7,

i=8
j=2,

i=9
j=2,3,

你这个程序并不能实现他的功能,
正确的程序是:

public class java {
/**
* 打印1---100之间的素数
* @param args
*/
public static void main(String[] args){
int i =1,j =2;
for(i=1;i<=100;i++) {
for(j=2;j<=i;j++)