請高手大大可以解釋這段程式碼嗎?謝謝您

Home Home
引用 | 編輯 DANIELEEL
2005-12-13 22:35
樓主
推文 x0
煩請各位高手大大可以幫忙小弟解釋這一段程式碼嗎?非常感激不盡.......(因為要做流程圖)

a=IIf(30>20 And "John">"Mary& ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 MarkTzen
2005-12-14 00:27
1樓
  
*******************************************
字串比對,一般都是用ascii碼比!
這是像c的 (expr) ? (stmt1) : (stmt2) => if-then-else
*******************************************
針對a的結果,應該是如果30>20 and 字串"John" > "Mary"時,
a就會變"John",
否則就會變"Mary"
*******************************************
再來b的部份,就是如果30 > 20 and 字串"John" > "Mary"時,
b就會變100 ,否則b會被設為200
*******************************************
n設為3.25
c的值將有 10,20,30,40,50 這個list中挑選出來。
這就是Choose的做用,第一個參數放要挑的位置,再來就是依序放入list的element。
問題是設成3.25,我不知是否會像c一樣,強迫轉成integer 變3 ?這個要跑過才知
*******************************************
再接下來是設d的值!
而Switch是將函式的基數參數列做為判斷,
假設第一個參數條件為true,則回傳第二個參數的值…以此類推~~
但僅回傳的是"第一個" 條件成立的值 (這是我看msdn上寫的,若有錯的話,再請大家補充一下)

所以這個行Switch ,會先判斷c = 10 ? 或者 c = 20 ? …
假設c = 10,那d 就會接到回傳值1。
但若c = 20,那d 就會接到回傳值2。
…以下也是以此類推…(目前為止,c是多少,我還不確定,因為choose是用3.25小數點來找 ???)
*******************************************
最後就把a 印出來
再把 b + c + d 的值印出!
*******************************************
*******************************************
*******************************************

其實這樣看來,這個程式很多if-then-else~~
把順序一一的比出來吧!這就是這個程式的簡單說明…
流程圖還是照"比較"的順序,一個個把三角形放上去吧!
同學~~~表情

獻花 x0
引用 | 編輯 MarkTzen
2005-12-14 00:37
2樓
  
這是我另外再從msdn上找的function解釋!

Visual Basic Language Reference

IIf Function
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctIIF.asp

Choose Function
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctChoose.asp

Switch Function
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctSwitch.asp

這樣應該可以再更清楚的了解這三支函式的用途了…

獻花 x1
引用 | 編輯 DANIELEEL
2005-12-14 20:21
3樓
  
真是感謝你喔 MarkTzen大大,我已經完全了解囉,謝謝你這麼的熱心解說,希望將來也能夠像大大您這樣,幫忙需要解惑的人. 表情 表情 表情

獻花 x0