這樣寫哪里出錯了
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整除的數(shù)之和:"+sum);
}
}
}
現(xiàn)在結(jié)果是這個
00以不能被3整除的數(shù)之和:1
100以不能被3整除的數(shù)之和: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整除的數(shù)之和:"+sum);
}
}
? ?}
}
這兩個結(jié)果為啥不一樣
2017-06-20
因為你第一個寫法i<=100 && i%3!=0,在i累加到=3時,判斷FALSE 循環(huán)已經(jīng)跳出了 sum自然=3
2017-06-19
int sum = 0;
??for (int i = 0; i <= 100 && i%3 != 0; i++) {
???sum +=i;
???System.out.println("100內(nèi)以不能被3整除的整數(shù)之和:" + sum);
??}
for循環(huán)的執(zhí)行順序:
???1、先執(zhí)行:int = 0;
???2、執(zhí)行條件表達式:i<=100 && i%3 != 0;
???3、如果第2步成立,執(zhí)行sum += i;
????如果不成立,直接跳出循環(huán),循環(huán)結(jié)束
???4、執(zhí)行完第3步,接著執(zhí)行i++;
???5、再執(zhí)行 i<=100 && i%3 != 0;
???6、如果第5步成立,執(zhí)行sum += i;
????如果不成立,直接跳出循環(huán),循環(huán)結(jié)束
???7、執(zhí)行i++,依次類推。。。
????在上述循環(huán)中,循環(huán)執(zhí)行到第2步的時候就跳出循環(huán)了,因為此時i = 0, 0%3=0,0對任意數(shù)取余結(jié)果都是0,條件表達式 0<=100 && i%3!=0 結(jié)果為false,直接跳出循環(huán)。
int sum = 0;
??for (int i = 1; i <= 100; i++) {
???if (i%3 != 0) {
????sum += i;
????System.out.println("100內(nèi)以不能被3整除的整數(shù)之和:" + sum);
???}
??}
??
??/*?
?此循環(huán)的執(zhí)行順序:
??
??i的值??? 循環(huán)條件表達式?? 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不成立的時候才跳出循環(huán),也就是說當i=101的時候,循環(huán)終止
能寫的都給你寫上了,只能幫到這了...?
??*/
2017-06-19
跳出for循環(huán)的條件不一致。
?i<=100 && i%3!=0和i<=100能一樣嗎?
2017-06-19
2017-06-19
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放在里面他直接就跳出循環(huán)了啊(1/3=1?。?,所以沒有輸出
? sum=i+sum;
? System.out.println("100以不能被3整除的數(shù)之和:"+sum);
}
//下面是根據(jù)你的意思完成的功能
for (int i=1;i<=100;i++){
if (i % 3 == 0) {
continue;
}
? sum=i+sum;
??
}
System.out.println("100以不能被3整除的數(shù)之和:"+sum);
}
}
2017-06-19
應(yīng)該改成for循環(huán)語句
2017-06-19
把if改成for試試呢