为什么结果不一样 int F1,s=0; for(F1=0;F1<=10;F1++){ if((F1%3)!=0){ s+=F1; } } System.out.println(s); int F2=0,s2=0; while(F2<=10){ F2++; if(F2%3!=0){ s2+=F2; } } System.out.println(s2);
while循环的时候f2++会多执行一次 变成37再加一次11 所以导致结果不一样
判定问题,++摆放位置
还真是!谢谢大家了!
楼上的说的对,for循环的第三个表达式F1++是在循环体里面的代码执行完后才执行,即先执行if判断在执行F1++;只要把while里面的F2++放到if判断的后面,两个循环就会一样了。
第一个for循环,是先执行if判断,然后执行F1++,而第二个while循环是先执行F2++,再执行if判断
你把顺序换一下,结果就一样了
第一个循环,执行最后一个循环的时候 F1=10
第二个循环,执行最后一个循环的时候 F2=11