计算机执行语句是一句一句执行的,他不会有跳跃的情况,即是他不会感性,
public class sushu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j;
int count=1;
for(i=2;i<=10;i++){
boolean isPrime=true;
for(j=2;j<i;j++){
if(i%j==0)isPrime=false;
break;
}
if(isPrime){
System.out.print(i+" ");
System.out.println(j+"AA");
}
}
}
}这是一个写质数的程序结果写出了所有的奇数,为什么?譬如对于9%2!=0,则计算机break;isPrime为true,输出9!
所有,这里第二层for其实是没有用的,因为对于j=2,i%2!=0,就break了!所有下面输出的j+"AA"会始终是2AA!
作一个小改动就行:
public class sushu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j;
int count=1;
for(i=2;i<=10;i++){
boolean isPrime=true;
for(j=2;j<i;j++){
if(i%j==0){
isPrime=false;
break;
}
}
if(isPrime){
System.out.print(i+" ");
System.out.println(j+"AA");
}
}
}
}
746

被折叠的 条评论
为什么被折叠?



