会进化的小菜鸟
2015-12-09 15:51
public static void main(String[] args) {
int sum = 0; // 保存不能被3整除的数之和
// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
for (int i = 1; i <= 100 && i % 3 != 0 ;i++ ) {
// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
//if (i % 3 != 0) {
sum = sum + i; // 累加求和
//}
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}
当 i = 3 的时候,不满足 i <= 100 && i % 3 != 0 的条件,for循环结束 ,只计算了 1 和 2 ,结果为 3
我想明白了,谢谢大家,这根本就是两个不同目的循环条件,一个是用来判断i<=100;另一个是用来求能被3整除的数字,当i=3时,3/3=1余数为0,不满足0!=0这个表达式,所以在i=3时就已经终止了for循环!
问题出在这一句
i <= 100 && i % 3 != 0
前半句是布尔型,后半句是int型,类型不对,应该把后半句再写一个if循环判断
for (int i = 1; i <= 100 ;i++ )
for循环括号第二段把i%3!=0删掉,这部分是进入循环的条件,一旦是false就结束循环执行了
Java入门第一季(IDEA工具)升级版
1165175 学习 · 17581 问题
相似问题