[問題] for迴圈變數當condition

看板C_and_CPP作者 (mirror)時間11年前 (2013/01/29 18:31), 編輯推噓3(309)
留言12則, 7人參與, 最新討論串1/1
哈囉~看到一種for迴圈的寫法有點疑惑~ 因此想請教一下有經驗的版友 ~ 原始code有點長因此就不貼上直接問一下涵義~ length=7; for (length /= 2; length; --length) { ........................ } 1. 這樣代表"............"裡面出現length時是從"7-1"/2=3 先開始作嗎?? (因為--length) 2. 判斷式只有寫length是什麼意思??只要length值存在就繼續作?? 還是只要length=0就停住?? 先謝謝版友的幫忙解惑Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.15.28

01/29 18:38, , 1F
從length=7/2=3開始到length=0 你可以寫個簡單的試試
01/29 18:38, 1F

01/29 18:55, , 2F
在for迴圈第一行加cout就可以簡單觀察到結果了
01/29 18:55, 2F

01/29 18:56, , 3F
如果編譯器有逐步追蹤,也可以一步一步觀察變數變化
01/29 18:56, 3F

01/29 19:57, , 4F
謝謝樓上2位~剛剛也試了length=-7然後用加的~一樣作到
01/29 19:57, 4F

01/29 19:57, , 5F
length=0會停住~所以在這裡--length和length--是一樣
01/29 19:57, 5F

01/29 19:58, , 6F
的吧?測試出來似乎如此~有錯還請大家揪正
01/29 19:58, 6F

01/29 20:01, , 7F
l--跟--l有先後的問題,不過在這裡沒差
01/29 20:01, 7F

01/29 20:32, , 8F
聽說--i對程式的效率會比較好XD
01/29 20:32, 8F

01/29 20:35, , 9F
除非你在很奇怪的平台開發, 不然編譯器肯定有最佳化這個
01/29 20:35, 9F

01/30 00:11, , 10F
感謝大家提供意見Orz
01/30 00:11, 10F

02/01 00:15, , 11F
查一下for述式的用法會比較好 還有一點C++ 非零值在布林視為
02/01 00:15, 11F

02/01 00:16, , 12F
true 零值為false 了解for述式的執行流程以後就會了解
02/01 00:16, 12F
文章代碼(AID): #1H1wJnre (C_and_CPP)