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

KEIL C 如何跳出while迴圈 執行下指令?

尚未結案
gbgb123321a
一般會員


發表:2
回覆:2
積分:0
註冊:2010-05-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-05-27 10:57:31 IP:203.72.xxx.xxx 訂閱
想請教各位大大  :
目的:
讓sensor感測到碰撞40次以後 (即向右轉20次向左轉20次) 然後跳離這個while迴圈
執行"-------------------------"以下的迴圈,我有去網路上看如何跳離迴圈 好像可以用break但我這邊是用turn去設定20次後轉向
當每碰撞20次以後即會轉向 我想要右轉20次左轉20次然後跳離至"虛線下"的迴圈
如果會的大大謝謝幫忙~

void turn(int tolerance, int hitPower)
{
hitCount = hitPower;
if (hitCount > tolerance)
{
direction = 1 - direction;
hitCount = 0;
}
if (direction)
RIGHT();
else
LEFT();
}


main()
{
while(1)
{
if(BUMPER_IN())
{
BACK();
delay_100m(13);
RIGHT();
turn(20, 1);
delay_100m(2);
}
if(FALL_IN())
{
BACK();
delay_100m(5);
RIGHT();
turn(20, 1);
delay_100m(5);
}
else
FORWARD();
}
}

---------------------------------------------------------------- {
while(1)
{
if(BUMPER_IN())
{
BACK();
delay_100m(2);
RIGHT();
delay_100m(2);
}
if(FALL_IN())
{
BACK();
delay_100m(5);
RIGHT();
delay_100m(5);
}
else
FORWARD();
}
編輯記錄
gbgb123321a 重新編輯於 2010-05-27 14:43:13, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-05-27 12:32:52 IP:203.75.xxx.xxx 未訂閱
有一種標籤叫「goto」

可以解決「好像不能用break」的問題
===================引 用 gbgb123321a 文 章===================
想請教各位大大 :
目的:
讓sensor感測到碰撞40次以後 (即向右轉20次向左轉20次)然後跳離這個while迴圈
執行"-------------------------"以下的迴圈,我有去網路上看如何跳離迴圈 好像可以用break但我這邊是用turn去設定20次後轉向
當每碰撞20次以後即會轉向 我想要右轉20次左轉20次然後跳離至"虛線下"的迴圈
...43...

gbgb123321a
一般會員


發表:2
回覆:2
積分:0
註冊:2010-05-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-05-27 13:26:36 IP:203.72.xxx.xxx 訂閱
有大大知道 goto用法嗎?
因為我這邊是想讓while迴圈 裡面碰撞次數達40次以後才跳到 第2個迴圈
這樣GOTO要怎麼寫阿?


===================引 用 GrandRURU 文 章===================
有一種標籤叫「goto」

可以解決「好像不能用break」的問題
===================引 用 gbgb123321a 文 章===================
想請教各位大大 :
目的:
讓sensor感測到碰撞40次以後 (即向右轉20次向左轉20次)然後跳離這個while迴圈
執行"-------------------------"以下的迴圈,我有去網路上看如何跳離迴圈 好像可以用break但我這邊是用turn去設定20次後轉向
當每碰撞20次以後即會轉向 我想要右轉20次左轉20次然後跳離至"虛線下"的迴圈
...43...

GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-05-27 16:02:45 IP:203.75.xxx.xxx 未訂閱
你可以參考一下這個
http://www.daxia.com/bibis/moredata30_1298158.shtml


===================引 用 gbgb123321a 文 章===================
有大大知道goto用法嗎?
因為我這邊是想讓while迴圈 裡面碰撞次數達40次以後才跳到 第2個迴圈
這樣GOTO要怎麼寫阿?
gbgb123321a
一般會員


發表:2
回覆:2
積分:0
註冊:2010-05-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-05-27 16:54:39 IP:203.72.xxx.xxx 訂閱
先謝謝大大的回覆:
我現在不太懂 要怎麼將我所要跳至的另外一個迴圈,定義成一個名稱
然後讓第一個迴圈裏面方向交換第二次時 if ..... goto "我所定義之名稱" /*如果方向交換第二次時goto另一迴圈*/
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-05-28 08:13:52 IP:203.75.xxx.xxx 未訂閱
嗯…你說的意思是這樣嗎?
[code cpp]
QQ:
while(1)
{
if(A == B)
{
aa();
goto PP;
}
}
PP:
while(1)
{
if(C == D)
{
bb();
goto QQ;
}
}
[/code]

===================引 用 gbgb123321a 文 章===================
先謝謝大大的回覆:
我現在不太懂 要怎麼將我所要跳至的另外一個迴圈,定義成一個名稱
然後讓第一個迴圈裏面方向交換第二次時 if ..... goto "我所定義之名稱" /*如果方向交換第二次時goto另一迴圈*/
handystudio
高階會員


發表:1
回覆:81
積分:106
註冊:2005-03-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-06-02 17:40:49 IP:61.219.xxx.xxx 訂閱
你程式非完整貼出,所以假設 => 因為你是先右轉,所以程式一開始時,direction = 1 
你的條件是當左轉 而且 hitCount 等於 20 時跳出第一個while(1),也就是說當 右轉 或 hitCount 不等於 20時,執行第一個while(1){......},
你可以把第一個while(1) 改成while((diriction == 1)||(hitCount != 20)) {......} 你可試試看

===================引 用 gbgb123321a 文 章===================
想請教各位大大 :
目的:
讓sensor感測到碰撞40次以後 (即向右轉20次向左轉20次)然後跳離這個while迴圈
執行"-------------------------"以下的迴圈,我有去網路上看如何跳離迴圈 好像可以用break但我這邊是用turn去設定20次後轉向
當每碰撞20次以後即會轉向 我想要右轉20次左轉20次然後跳離至"虛線下"的迴圈
如果會的大大謝謝幫忙~

void turn(int tolerance, int hitPower)
{
hitCount = hitPower;
if (hitCount > tolerance)
{
direction = 1 - direction;
hitCount = 0;
}
if (direction)
RIGHT();
else
LEFT();
}


main()
{
while(1)
{
if(BUMPER_IN())
{
BACK();
delay_100m(13);
RIGHT();
turn(20, 1);
delay_100m(2);
}
if(FALL_IN())
{
BACK();
delay_100m(5);
RIGHT();
turn(20, 1);
delay_100m(5);
}
else
FORWARD();
}
}

---------------------------------------------------------------- {
while(1)
{
if(BUMPER_IN())
{
BACK();
delay_100m(2);
RIGHT();
delay_100m(2);
}
if(FALL_IN())
{
BACK();
delay_100m(5);
RIGHT();
delay_100m(5);
}
else
FORWARD();
}
------
歡迎光臨 輕巧工作室
網站 http://www.handystudio.tw
控制電路板客製設計、製作交貨
8051專題製作/專題客製
系統時間:2024-03-29 20:10:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!