for 循環(huán)問題
正確代碼:
public?static?void?main(String[]?args)?{ ????int?sum?=?0; ????for?(int?i?=?1;?i?<=?100;?i++)?{ ????????if?(?i%3?!=?0)?{ ????????????sum?+=?i; ????????} ????} ????System.out.println(sum); }
問題1:
請問為什么 System.out.println(sum) 和 for循環(huán)并列放(在兩個大括號下面)而不是像教程里面在 for 循環(huán)里面這樣:
for?(int?i?=?1;?i?<=?100;?i++)?{ ????????if?(?i%3?!=?0)?{ ????????????sum?+=?i; ????????} ????????System.out.println(sum); }
問題2:
如果初始化和變量變化都可以是多個用逗號隔開就好,那么為什么如下代碼輸出有問題呢?
for?(int?sum?=?0,?i?=?1;?i?<=?100?&&?i?%?3?!=?0;?sum+=i,?i++)?{ ????System.out.println(sum); }
2018-09-13
問題1:如果你把System.out.println(sum);放在for循環(huán)里面,就相當于每次求完和都會輸出結(jié)果,而和for循環(huán)一起并列,最后就只會輸出最終的一個值。
問題2:你這樣寫最后只會輸出0,1。原因:循環(huán)條件i<=100&&i%3!=0表示與關(guān)系,只有&&左右兩邊都為true時才為真。一開始
sum=0,i=1,滿足循環(huán)條件,輸出sum=0,然后執(zhí)行sum+=i,i++;
sum=1,i=2,滿足循環(huán)條件,輸出sum=1,然后執(zhí)行sum+=i,i++;
sum=3,i=3,這時不滿足循環(huán)條件,因為3%3==0,所以右邊為false,不滿足循環(huán)條件,循環(huán)結(jié)束
2018-10-05
這里不錯
2018-09-13
你里面的 System.out.println(sum); 會根據(jù)上面的條件,循環(huán)打印出多次結(jié)果,直至不滿足條件為止,上面案例是輸出一次結(jié)果