作者BoHann (阿呆)
看板C_and_CPP
標題Re: [閒聊] 超無言的for迴圈...
時間Fri Apr 24 20:37:11 2009
我也提供一個無限迴圈
int i,k=5;
for(i=1;i<=k;i++)
{
cout<<"hi";
k++;
}
由於壞習慣,都會先把迴圈「起點、終點」算好
所以就一直以為是5次,一直記成for(i=1;i<=5;i++)
結果c語言是每次都檢查i<=k,所以就無限迴圈啦
※ 引述《yauhh (喲)》之銘言:
: ※ 引述《OpenSkyWin (雞飛城市)》之銘言:
: : 期中考居然碰到像這種for迴圈
: : int i;
: : for(i=0;i=1;i++)
: : {
: : printf(" i is %d \n",i);
: : }
: : 然後問你這個迴圈總共會執行幾次= ="
: : 判斷式給我放i=1咧...我咧,這什麼東西...
: : 要是放0或1或a-i什麼之類的我還能懂
: : 到底這樣放有什麼意思呢??
: : 增加閱讀的困難??
: 我想這是寫程式的人自己的盲點,可能因為寫久了都看到比較普通的for迴圈寫法,
: 以及認為for必須寫成有效完成一段程式的樣式.
: 但是,for語法的三個位置,第一個規定進入迴圈的初值,第二個規定持續迴圈的條件,
: 第三個規定迴圈前後的差異. 所以 for(i=0;i=1;i++) 不正是規定了:
: - 進入迴圈時,i為0.
: - 若「i能指定為1」則持續迴圈.
: 結果會發現,無論什麼情況,i都能指定為1,所以是無窮迴圈嘛!
: 沒有人規定程式都要寫對,也沒有人規定考卷上出現的程式都要「正確」或「有意義」.
: 當有些人在抱怨考題「沒有意義」的時候,卻忘了他應考只有「在考題正確
: 的情況下不要答錯」的權力,而沒有修正考題的權力.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.173.56
推 Yshuan:沒寫過終止值變動的for迴圈... 04/24 20:40
推 chrisdar: \._. 我戳 for + vector 終止值就會變動了 04/24 20:53
→ adrianshum:應該不是無限. 當 k overflow 的時候就會停了 04/24 21:00
推 fetosa:推三樓 04/24 21:20
推 VictorTom:推3F:) 04/24 22:44
→ BoHann:多謝三樓 有一次在迴圈內改到終止條件,所以跟大家分享 04/24 23:46
推 ksmrt0123:3F果然是期中考100分的高手 04/25 02:01
→ MOONRAKER:如果在php就永遠不會停…因為不會overflow 04/25 05:06
→ MOONRAKER:會永遠stuck在0x7fffffff…前天剛看到的大bug XD 04/25 05:06
推 liptonbin:樓上是出題的老師 04/25 08:55
推 VictorTom:PHP真糟糕....(大誤XD) 04/25 11:26
→ MOONRAKER:那是用在上傳檔案命名的程式裡…如果不是客戶發現檔案 04/25 13:16
→ MOONRAKER:掉了,破口大罵,大概永遠都不會注意到這個0x7fffffff… 04/25 13:17
推 VictorTom:MS: 64bit的時代來了, 請用戶盡早升級Windows 8 .... XD 04/25 13:29