for 循環問題
正確代碼:
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循環并列放(在兩個大括號下面)而不是像教程里面在 for 循環里面這樣:
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循環里面,就相當于每次求完和都會輸出結果,而和for循環一起并列,最后就只會輸出最終的一個值。
問題2:你這樣寫最后只會輸出0,1。原因:循環條件i<=100&&i%3!=0表示與關系,只有&&左右兩邊都為true時才為真。一開始
sum=0,i=1,滿足循環條件,輸出sum=0,然后執行sum+=i,i++;
sum=1,i=2,滿足循環條件,輸出sum=1,然后執行sum+=i,i++;
sum=3,i=3,這時不滿足循環條件,因為3%3==0,所以右邊為false,不滿足循環條件,循環結束
2018-10-05
這里不錯
2018-09-13
你里面的 System.out.println(sum); 會根據上面的條件,循環打印出多次結果,直至不滿足條件為止,上面案例是輸出一次結果