public class HelloWorld {
public static void main(String[] args) {
int sum = 0;
for (int i = 1;i<=100 && i % 3 != 0;i++) {
sum = sum + i;
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}
}运行结果为什么是3呢
i<=100 && i % 3 != 0
这个是for进行循环的判断条件,满足这个条件则进行循环,不满足的话就终止循环。当i=1时,满足条件,sum就加1,当i=2时,也满足条件,sum再加2,此时sum就是3了,当i=3,时,由于i % 3 = 0了,所以不满足循环条件,for循环就终止了。所以sum的值就是3.
当i =3时,不满足for循环里的条件(i<100&&i%3!=0),所以这个循环就结束了。故这个循环只循环了两次,最终输出结果为:sum=0+1+2=3
当i=1时,同时满足两个判断条件,自增为i=2且执行一次循环,此时sum=0+1=1;
当i=2时,依然同时满足两个判断条件,自增为i=3且执行一次循环,此时sum=1+2=3;
当i=3时,满足i<=100但是不满足i%3!=0,此时直接结束循环,输出结果sum=3;
应该改为:
public class HelloWorld {
public static void main(String[] args) {
int sum = 0;
for (int i = 1;i<=100 ;i++) {
if (i%3==0){//当i被3整除时跳过本次循环进行下一次循环
continue;
}
sum = sum + i;
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}