線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2792
推到 Plurk!
推到 Facebook!

if~else、Case 程式寫法問題

答題得分者是:dllee
zeal
一般會員


發表:8
回覆:7
積分:3
註冊:2007-08-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-29 15:05:10 IP:210.70.xxx.xxx 訂閱
站內各位大大們,您好,
小妹本來想透過在Edit中輸入不同的數字,可使不同的Panel移動到指定位置,
一開始小妹是使用 if... else if... else 這種多項選擇的方式(程式如下圖二) ,
但是,Compile可以過,但是總是出現怪怪的結果,直到用 switch case ...(程式如下圖一) 才解決了我的問題,
可是我仍然想請問大大們,是我寫的if ~else觀念有錯嗎? 不然怎麼會結果怪怪的呢?

<textarea class="cpp" rows="10" cols="60" name="code">int i; i=StrToInt(Edit1->Text); switch(i) { case 1: Panel1->Top=8; Panel1->Left=8; break; case 2: Panel2->Top=8; Panel2->Left=8; break; case 3: Panel3->Top=8; Panel3->Left=8; break; } </textarea>
<textarea class="cpp" rows="10" cols="60" name="code">int i; i=StrToInt(Edit1->Text); if (i=1) { Panel1->Top=8; Panel1->Left=8; } else if (i=2) { Panel2->Top=8; Panel2->Left=8; } else { Panel3->Top=8; Panel3->Left=8; } </textarea>
編輯記錄
zeal 重新編輯於 2007-08-29 15:08:25, 註解 無‧
zeal 重新編輯於 2007-08-29 15:10:46, 註解 標明圖一、圖二‧
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-29 16:06:56 IP:220.134.xxx.xxx 訂閱
if(i==1)
{
//...
}
else if(i==2)
{
//...
}
else
{
//...
}


一個等號是給值, 兩個等號才是比較, 要注意不要寫錯了。
------
http://www.ViewMove.com
zeal
一般會員


發表:8
回覆:7
積分:3
註冊:2007-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-30 10:46:04 IP:59.116.xxx.xxx 訂閱
^____^

感謝大大的解答~~~
原來如此呀~~~

呵呵~~~
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-06 04:56:29 IP:61.229.xxx.xxx 訂閱
看到這篇,就讓我連想到許多新手都曾犯這個毛病,當然我初學時也曾有過。在此補充一個與這題目有關的小技巧:

是否曾看過有人把 if 中的判別寫成 if ( 7==k) { ........} 之類的? 把常數寫前面,把變數寫後面。這種習慣就是怕若不小心寫成 if ( 7=k) { ........} 時,compiler就會提示你錯誤,而你馬上就知道你一時打錯了!

^_^
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-05-02 12:08:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!