Re: [閒聊] 超無言的for迴圈...

看板C_and_CPP (C/C++)作者 (喲)時間16年前 (2009/04/23 02:35), 編輯推噓14(14024)
留言38則, 10人參與, 最新討論串3/4 (看更多)
※ 引述《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: 59.112.225.34 ※ 編輯: yauhh 來自: 59.112.225.34 (04/23 02:39)

04/23 08:18, , 1F
解釋完美
04/23 08:18, 1F

04/23 09:55, , 2F
感恩!!
04/23 09:55, 2F

04/23 09:55, , 3F
推這位大大的說法, 除非題目是錯的, 否則不應該改題目:)
04/23 09:55, 3F

04/23 09:57, , 4F
很明顯這是陷阱題吧
04/23 09:57, 4F

04/23 10:00, , 5F
其實在解的過程我還把i=1搬過來變成i-1=0想說i值是1那
04/23 10:00, 5F

04/23 10:01, , 6F
結果就是false ...XD
04/23 10:01, 6F

04/23 10:01, , 7F
基本上那跟 if(i=1) 是一樣的意思, 可以說是陷阱題,
04/23 10:01, 7F

04/23 10:02, , 8F
但是滿有教育意義的; 也是檢視對statement expression
04/23 10:02, 8F

04/23 10:02, , 9F
了解程度的好方法XDDD
04/23 10:02, 9F

04/23 13:28, , 10F
若「i能指定為1」... 這說法是錯的
04/23 13:28, 10F

04/23 13:53, , 11F
恩恩 應該是(i=1)的值為1吧
04/23 13:53, 11F

04/23 14:20, , 12F
科科 原po寫個if (i = 0)就知道囉 ^.<
04/23 14:20, 12F

04/23 16:57, , 13F
喔,講錯了,應該說「i指定為1的意義被認為真」,雖然難懂一點
04/23 16:57, 13F

04/23 18:53, , 14F
不是吧, 就是 i 的值吧, 不然 for(;i=0;) 呢? @@
04/23 18:53, 14F

04/23 18:53, , 15F
跟指定什麼的意義為不為真沒有關係
04/23 18:53, 15F

04/23 18:54, , 16F
不然 j=i=0; j=i=1; 不就沒差了
04/23 18:54, 16F

04/23 19:24, , 17F
對呀 跟指定不指定沒啥關 就是看i的值
04/23 19:24, 17F

04/23 23:34, , 18F
我想`指定` 應該是英文 assign 的翻譯吧 ~_~
04/23 23:34, 18F

04/23 23:34, , 19F
或者說應該叫做指派
04/23 23:34, 19F

04/24 00:40, , 20F
當一個條件式用到一個指定,就可以說指定啊,程式碼明寫了指定
04/24 00:40, 20F

04/24 00:40, , 21F
卻「跟指定無關」,啥意思? 指定本來就是assignment
04/24 00:40, 21F

04/24 00:41, , 22F
指定,指派,都一樣,只是一個譯詞;不要把譯詞再拿去用中文思考
04/24 00:41, 22F

04/24 00:43, , 23F
for(;i=0;)內是i指定為0的意義不成立,因為全值0認定為false
04/24 00:43, 23F

04/24 00:43, , 24F
今天我說「意義被認為真」只是指解釋成true而已,何必想太多
04/24 00:43, 24F

04/24 00:44, , 25F
分析那麼多是要吵到什麼時候,大家都是口語邏輯達人嗎?
04/24 00:44, 25F

04/24 00:45, , 26F
大家有好好正式修過「口語邏輯」這堂課嗎?真要那麼嚴肅!?
04/24 00:45, 26F

04/24 00:48, , 27F
再爭下去,是不是要順便幫以上的語意寫編譯器了?
04/24 00:48, 27F

04/24 01:01, , 28F
息怒吧 我想事情並沒這麼嚴重
04/24 01:01, 28F

04/24 01:37, , 29F
我是說跟指派的意義無關, 卻變成了「跟指定無關」
04/24 01:37, 29F

04/24 01:41, , 30F
指定指派都好, 本身沒有什麼意義, 只有傳回值, 如果你真的要
04/24 01:41, 30F

04/24 01:41, , 31F
扯邏輯的話。
04/24 01:41, 31F

04/24 07:49, , 32F
如果是這樣呢 const y=0;
04/24 07:49, 32F

04/24 07:50, , 33F
for(int i=0;j=1;i++) 如果是這樣會如何阿?
04/24 07:50, 33F

04/24 07:53, , 34F
打太快...應該是 const int y=0; 感謝原PO的解釋
04/24 07:53, 34F

04/24 07:54, , 35F
還是打錯.....const int j=0; (我還沒睡醒 XD...)
04/24 07:54, 35F

04/24 09:45, , 36F
樓上, j是const的話, j=1 compiler就會把你擋掉了....
04/24 09:45, 36F

04/25 01:48, , 37F
恩...我的意思就在這裡啊..還感謝原PO讓我明白
04/25 01:48, 37F

04/25 01:48, , 38F
其實 i=1 這樣會return true.....(應該可以這樣說吧)
04/25 01:48, 38F
文章代碼(AID): #19xsDxXE (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 4 篇):
文章代碼(AID): #19xsDxXE (C_and_CPP)