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

C語言 IF 和else if 的用法正確嗎??

尚未結案
grass0423
一般會員


發表:3
回覆:2
積分:1
註冊:2011-08-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-09-16 14:31:46 IP:61.219.xxx.xxx 訂閱
大家好!! 我要用單晶片做彈珠台
但是不太會C語言,請大家幫我看看

if (條件A) {//條件A成立時執行的程式碼}
else if (條件B) {//條件A「不」成立,而條件B成立時,執行的程式碼}

if (sum > 0) { // 中獎 (條件1)總分大餘0
delay1ms(20); // 防彈跳
(REF2 == 0) // 退彈珠馬達 微動開關 打開
delay1ms(20); // 防彈跳

(REF1 == 0) // 退彈珠 微動開關 打開
flag_touch_lock10 = 1; // 退彈珠感應
sum = sum-1; // 退彈珠一次 扣1
playSound(SND_NORMAL); // 發出 聲音(snd音效格式檔 正常)
}
else (sum = 0) { // 彈珠數目=0 馬達關掉
delay1ms(20); // 防彈跳
(REF2 == 1) // 退彈珠馬達 關
}

請問
這一段是要寫 SUM 有分數,就打開 退彈珠馬達退彈珠馬達上的微動開關
每退一彈珠SUM就-1,到0馬達就關起來

x812116
一般會員


發表:0
回覆:3
積分:0
註冊:2011-11-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-11-21 17:17:21 IP:211.20.xxx.xxx 訂閱
 先決條件:第一次判斷時sum大於等於0或sum宣告成無號數
if - else:
if (sum > 0) // 總分大於0
{
delay1ms(20); // 防彈跳
(REF2 == 0) // 退彈珠馬達 微動開關 打開
delay1ms(20); // 防彈跳
(REF1 == 0) // 退彈珠 微動開關 打開
flag_touch_lock10 = 1; // 退彈珠感應
sum-- ; // 退彈珠一次 扣1
playSound(SND_NORMAL); // 發出 聲音(snd音效格式檔 正常)
}
else//進入條件(sum < 0||sum == 0)
{
delay1ms(20); // 防彈跳
(REF2 == 1) // 退彈珠馬達 關
}
if - else if - else:
if (sum > 0) // 總分大於0
{
delay1ms(20); // 防彈跳
(REF2 == 0) // 退彈珠馬達 微動開關 打開
delay1ms(20); // 防彈跳
(REF1 == 0) // 退彈珠 微動開關 打開
flag_touch_lock10 = 1; // 退彈珠感應
sum-- ; // 退彈珠一次 扣1
playSound(SND_NORMAL); // 發出 聲音(snd音效格式檔 正常)
}
else if(sum == 0)
{
delay1ms(20); // 防彈跳
(REF2 == 1) // 退彈珠馬達 關
}
else//進入條件(sum < 0)
{
//理論上不會進入,如果sum宣告成有號數就有機會進入
}
grass0423
一般會員


發表:3
回覆:2
積分:1
註冊:2011-08-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-11-22 10:00:43 IP:61.219.xxx.xxx 訂閱
謝謝 x812116大大
感謝您回文 我多改過試看看
系統時間:2017-12-19 2:34:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!