Re: [問題] 輔大92資工
※ 引述《chen0404 (這個冬天會很暖)》之銘言:
: a. int i = 0, total = 0;
: while(++i<=100)
: total += i;
: 試回答此迴圈結束後,i和total的值各為何?
: b. int i = 1, total = 0;
: while(i++<=100)
: total += i;
: 試回答此迴圈結束後,i和total的值各為何?
: 有點分不清...想請教一下...^^"
今天偶然爬到這篇文章,練習做了一次,發現跟測出來的值相吻合,
不過我想以文字理解的方式說明,
大家看我說的對不對~
-----------------------------------------------------------
關於a.
一開始先執行++i => i=1
total +=i => total=1
以此類推進行到i=100時
一樣先++i => i =101 不滿足while條件,所以total沒有加到101
所以i仍然是101,
而total則是1+2+3+4+.....+100 = 100*(1+100)/2 = 5050
關於b.
則是一開始先執行while條件的判斷=>
1<100 成立,判斷結束以後才將i+1 = 2
所以total = total + i = 2
以此類推進行到i=100時經過條件判斷滿足後i = 101,
所以total最後加到101
然後回到迴圈條件判斷發覺101不符,
因此迴圈終止但最後仍然要進行i++,
所以i = 102,
而total = 2+3+4+....+101 = 100*(101+2)/2 = 5150
以上~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.228.83.133
討論串 (同標題文章)