全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1276
推到 Plurk!
推到 Facebook!

elseif判斷問題

答題得分者是:tech_state
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-26 02:41:24 IP:218.165.xxx.xxx 未訂閱
void __fastcall TClientMaint::BitBtn8Click(TObject *Sender) { if(wwDBEdit7->Text=="") { MessageBox(NULL,"請填寫客戶名稱!","錯誤",MB_ICONERROR); return; } else if(wwDBEdit2->Text=="") { MessageBox(NULL,"請填寫連絡人!","錯誤",MB_ICONERROR); return; }else if(wwDBEdit6->Text=="") { MessageBox(NULL,"請填寫客戶名稱!","錯誤",MB_ICONERROR); return; }else { DataModule1->ClientMaintTable->Post(); DataModule1->ClientMaintTable->Refresh(); LeaveModifyMode(); } } =====================>為什麼一直判斷第一個if?? 難道我的做法錯了? 暗光鳥初手求學中! 發表人 - game 於 2003/05/26 02:43:05
------
溝通網路情、連接數位心
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-26 06:19:58 IP:218.166.xxx.xxx 未訂閱
您用的是if else if的條件式 不管如何 只要wwDBEdit7->Text=="" 就會是第一個 不管你下面如何成立都沒用 請您給一個例子,說出您認為有問題的『狀態』
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-26 10:48:36 IP:218.165.xxx.xxx 未訂閱
引言: 您用的是if else if的條件式 不管如何 只要wwDBEdit7->Text=="" 就會是第一個 不管你下面如何成立都沒用 請您給一個例子,說出您認為有問題的『狀態』
因為我想判斷wwDBEdit7,wwDBEdit2,wwDBEdit6一定要填寫 但是不知道為什麼,我全部都有填寫了 他還是一直跳出MessageBox視窗! 是不是(wwDBEdit7->Text=="")錯了? 暗光鳥初手求學中!
------
溝通網路情、連接數位心
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-26 11:41:37 IP:61.230.xxx.xxx 未訂閱
引言: void __fastcall TClientMaint::BitBtn8Click(TObject *Sender) { if(wwDBEdit7->Text=="") { MessageBox(NULL,"請填寫客戶名稱!","錯誤",MB_ICONERROR); return; } else if(wwDBEdit2->Text=="") { MessageBox(NULL,"請填寫連絡人!","錯誤",MB_ICONERROR); return; }else if(wwDBEdit6->Text=="") { MessageBox(NULL,"請填寫客戶名稱!","錯誤",MB_ICONERROR); return; }else { DataModule1->ClientMaintTable->Post(); DataModule1->ClientMaintTable->Refresh(); LeaveModifyMode(); } } =====================>為什麼一直判斷第一個if?? 難道我的做法錯了? 暗光鳥初手求學中! 發表人 - game 於 2003/05/26 02:43:05
game你好: 我想你的問題是出在文字比對,文字比對應該不是用" == " 應該是strcmp()或是strncmp(),傳回的值0為相似,不為0表示不相似 還有就是條件可以改成相反比對,也就是沒有值才成立,會比判斷是否 為""更為適當,建議使用 if(strlen(wwDBEdit7->Text)<1) 或是wwDBEdit7->Text就有內建的資料可以得到字串的長度, 我現在沒有環境測試,所以如果有錯,請見諒
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-26 15:50:23 IP:61.221.xxx.xxx 未訂閱
game, 您好 請試試改為if(wwDBEdit7->Text.IsEmpty())。 其實您的寫法應該就可以了,而您說不行,讓我想到一個可能性。 您的三個欄位的值是user直接輸入的?還是系統assign的? 如果是系統assign的,可能就會有誤判斷的情形。 請您試試直接由user輸入。    ======================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
系統時間:2024-11-23 13:26:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!