慕数据6417455
2017-06-19 16:44
public class HelloWorld {
public static void main(String[] args) {
int sum=0;
for (int i=1;i<=100 && i%3!=0;i++){
sum=i+sum;
System.out.println("100以不能被3整除的数之和:"+sum);
}
}
}
现在结果是这个
00以不能被3整除的数之和:1
100以不能被3整除的数之和:3
public static void main(String[] args) {
int sum =0;
for (int i=1;i<=100;i++){
if (i%3!=0){
sum=i+sum;
System.out.println("100以不能被3整除的数之和:"+sum);
}
}
}
}
这两个结果为啥不一样
因为你第一个写法i<=100 && i%3!=0,在i累加到=3时,判断FALSE 循环已经跳出了 sum自然=3
int sum = 0;
for (int i = 0; i <= 100 && i%3 != 0; i++) {
sum +=i;
System.out.println("100内以不能被3整除的整数之和:" + sum);
}
for循环的执行顺序:
1、先执行:int = 0;
2、执行条件表达式:i<=100 && i%3 != 0;
3、如果第2步成立,执行sum += i;
如果不成立,直接跳出循环,循环结束
4、执行完第3步,接着执行i++;
5、再执行 i<=100 && i%3 != 0;
6、如果第5步成立,执行sum += i;
如果不成立,直接跳出循环,循环结束
7、执行i++,依次类推。。。
在上述循环中,循环执行到第2步的时候就跳出循环了,因为此时i = 0, 0%3=0,0对任意数取余结果都是0,条件表达式 0<=100 && i%3!=0 结果为false,直接跳出循环。
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i%3 != 0) {
sum += i;
System.out.println("100内以不能被3整除的整数之和:" + sum);
}
}
/*
此循环的执行顺序:
i的值 循环条件表达式 if条件表达式 sum的值
i = 1; i <= 100; i%3 != 0; sum+=i; i++
1 ; 0<=100 成立, 1%3=1 成立, sum=0+1=1 i++;
2 ; 2<=100 成立, 2%3=2 成立, sum=1+2=3 i++;
3 ; 3<=100 成立, 3%3=0 不成立 跳过此步 i++;
4 ; 4<=100 成立 4%3=1 成立 sum=3+4=7 i++;
...依次类推,直到i<=100不成立的时候才跳出循环,也就是说当i=101的时候,循环终止
能写的都给你写上了,只能帮到这了...
*/
跳出for循环的条件不一致。
i<=100 && i%3!=0和i<=100能一样吗?
写的不好 下班了 着急 将就看吧
public class HelloWorld {
public static void main(String[] args) {
int sum=0;
for (int i=1;i<=100 && i/3!=0;i++){//你将i/3不等于0放在里面他直接就跳出循环了啊(1/3=1啊),所以没有输出
sum=i+sum;
System.out.println("100以不能被3整除的数之和:"+sum);
}
//下面是根据你的意思完成的功能
for (int i=1;i<=100;i++){
if (i % 3 == 0) {
continue;
}
sum=i+sum;
}
System.out.println("100以不能被3整除的数之和:"+sum);
}
}
应该改成for循环语句
把if改成for试试呢
Java入门第一季(IDEA工具)升级版
1165552 学习 · 17587 问题
相似问题