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

動作優先順序處理

缺席
eric2339
一般會員


發表:21
回覆:14
積分:7
註冊:2007-11-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-30 10:56:49 IP:59.124.xxx.xxx 訂閱
如果有1、2、3樣的動作要做,並且他有個先後順序,而這3個要處理的動作如下:
假設今天 要先看 1 是否有觸發,才能看 2 是否有觸發,才能再看 3 是否有觸發,
若1、2 、3 都未觸發,則執行另一個開始的動作。請各位高手幫忙,謝謝!
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-30 11:10:55 IP:59.125.xxx.xxx 訂閱
要幫什麼?你自己都說的那麼清楚了,不是嗎?

===================引 用 eric2339 文 章===================
如果有1、2、3樣的動作要做,並且他有個先後順序,而這3個要處理的動作如下:
假設今天 要先看 1 是否有觸發,才能看 2 是否有觸發,才能再看 3 是否有觸發,
若1、2 、3 都未觸發,則執行另一個開始的動作。請各位高手幫忙,謝謝!
eric2339
一般會員


發表:21
回覆:14
積分:7
註冊:2007-11-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-03 16:15:50 IP:59.124.xxx.xxx 訂閱
dear syntax....
目前遇到的問題在於在執行完第1個動作後,便跳開迴圈,導致無法判斷3個動作是否都需要觸發。
目前的方式如下:

IF (動作1 觸發){
執行動作
}ELSE{
不執行動作
}

return;

if (動作1完成)
if (動作2觸發)
執行動作
else
不執行動作
}

return;

現在的問題在於做完動作1後,就跳開了。請幫幫忙,謝謝
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-03 20:20:26 IP:211.72.xxx.xxx 訂閱
要往下走, 便不要 return.
===================引 用 eric2339 文 章===================
dear syntax....
目前遇到的問題在於在執行完第1個動作後,便跳開迴圈,導致無法判斷3個動作是否都需要觸發。
目前的方式如下:

IF (動作1 觸發){
執行動作
}ELSE{
不執行動作 // 既然不執行動作, 整段 else {} 都可省略
}

// return; // 刪掉本式

if (動作1完成) {
if (動作2觸發) {
執行動作
} else {
不執行動作 // 既然不執行動作做, 整段 else {} 都可省略
}
}

// return; // 刪掉本式


現在的問題在於做完動作1後,就跳開了。請幫幫忙,謝謝
eric2339
一般會員


發表:21
回覆:14
積分:7
註冊:2007-11-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-06 10:52:26 IP:59.124.xxx.xxx 訂閱

===================引 用 herbert2 文 章===================
要往下走, 便不要 return.
===================引 用 eric2339 文 章===================
dear syntax....
目前遇到的問題在於在執行完第1個動作後,便跳開迴圈,導致無法判斷3個動作是否都需要觸發。
目前的方式如下:

IF (動作1 觸發){
執行動作
}ELSE{
不執行動作 // 既然不執行動作, 整段 else {} 都可省略
}

// return; // 刪掉本式

if (動作1完成) {
if (動作2觸發) {
執行動作
} else {
不執行動作 // 既然不執行動作做, 整段 else {} 都可省略
}
}

// return; // 刪掉本式


現在的問題在於做完動作1後,就跳開了。請幫幫忙,謝謝


以下是我的程式來源,目前要做3個動作判斷,判斷1是否觸發,否則往判斷2走,判斷是否觸發,再往判斷3走,判斷是觸發,3個動作判斷完成後,另外做動作。下列程式是否有何問題?謝謝!
if (H_Cut == false){
H_Cut=true;
i f (H36D_OK == false){
if (H238_OK == false){
if (H238 == false){
if ( Lccd () ==1) {
執行動作
H238 = true;
}else{
H238_OK = true;
}
return;
}
}
if (READ_AA==true) H238_OK=true;
if (H238_OK == true){
if (H239_OK == false){
if (H239 == false){
if (R_CCD ()==1){
H239 = true;
執行動作
}else{
H239_OK = true;
}
return;
}
}
if (READ_AB==true) H239_OK=true;
}
if ((H238_OK==true)&&(H239_OK==true)){
if (H236_OK==false){
if (H236==false){
if (L_Check_Height_Cutting()==1){
H236=true;
執行動作;
}else{
H236_OK=true;
}
return;
}
}
if (READ_AC == true) H236_OK=true;
}
if ((H238_OK==true)&&(H239_OK==true)&&(H236_OK==true)){
if (H237_OK==false){
if (H237==false){
if (R_Check_Height() == 1){
H237=true;
執行動作;
}else{
H237_OK=true;
}
return;
}
}
if (READ_HH139[23]==true) H237_OK=true;

}
if ((H238_OK==true)&&(H239_OK==true)&&(H236_OK==true)&&(H237_OK==true)){
if (H23A_OK==false){
if (H23A==false){
if (Kuf_Left_Check()==1){
H23A=true;
執行動作;
}else{
H23A_OK=true;
}
return;
}
}
if(READ_HH139[26]==true) H23A_OK=true;
}
if ((H238_OK=true)&&(H239_OK==true)&&(H236_OK==true)&&(H237_OK==true)&&(H23A_OK==true)){
if (H23B_OK==false){
if (H23B==false){
if (Kuf_Right_Check()==1){
H23B=true;
執行動作;
}else{
H23B_OK=true;
}
return;
}
}
if(READ_HH139[27]==true) H23B_OK=true;
}
if ((H238_OK==true)&&(H239_OK==true)&&(H236_OK==true)&&(H237_OK==true)&&(H23A_OK==true)&&(H23B_OK==true)){
if (H36D_OK==false){
H36D_OK=true;
H236=false; H237=false; H238=false; H239=false; H23A=false; H23B=false;
H236_OK=false; H237_OK=false; H238_OK=false; H239_OK=false; H23A_OK=false; H23B_OK=false;
執行另1動作;
}
}
}
}
2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-06 11:39:55 IP:220.132.xxx.xxx 未訂閱

是這樣子嗎??

[code cpp]

bool TriggerFlag = false;
if(H_Cut == false)
{
H_Cut = true;
if(H36D_OK == false)
{
if(H238_OK==false)
{
if(H238==false)
{
if( Lccd()==1) {
H238 = true;
執行動作一
TriggerFlag = true;
}
else{
H238_OK = true;
}
}
}
if(READ_AA==true){
H238_OK = true;
}

if( (TriggerFlag==false) && (H238_OK==true) )
{
if(H239_OK==false)
{
if(H239==false)
{
if(R_CCD()==1)
{
H239 = true;
執行動作二
TriggerFlag = true;
}
else{
H239_OK = true;
}
}
}
if (READ_AB==true){
H239_OK=true;
}
}

if( (TriggerFlag==false) && (H238_OK==true) && (H239_OK==true) )
{
if (H236_OK==false)
{
if (H236==false)
{
if (L_Check_Height_Cutting()==1){
H236 = true;
執行動作三;
TriggerFlag = true;
}
else{
H236_OK = true;
}
}
}
if (READ_AC == true){
H236_OK = true;
}
}

if( (TriggerFlag==false) && (H238_OK==true) && (H239_OK==true) && (H236_OK==true))
{
if (H237_OK==false)
{
if (H237==false)
{
if (R_Check_Height() == 1){
H237 = true;
執行動作四;
TriggerFlag = true;
}
else{
H237_OK=true;
return;
}
}
}
if (READ_HH139[23]==true) H237_OK=true;
}

if( (TriggerFlag==false) && (H238_OK==true)&&(H239_OK==true)&&(H236_OK==true)&&(H237_OK==true))
{
if (H23A_OK==false)
{
if (H23A==false)
{
if (Kuf_Left_Check()==1){
H23A=true;
執行動作五;
TriggerFlag = true;
}
else{
H23A_OK = true;
}
}
}
if(READ_HH139[26]==true){
H23A_OK = true;
}
}

if( (TriggerFlag==false) && (H238_OK=true) && (H239_OK==true) && (H236_OK==true) && (H237_OK==true) && (H23A_OK==true) )
{
if (H23B_OK==false)
{
if (H23B==false)
{
if (Kuf_Right_Check()==1)
{
H23B = true;
執行動作六;
TriggerFlag = true;
}
else{
H23B_OK=true;
}
}
}
if(READ_HH139[27]==true){
H23B_OK = true;
}
}

if( (TriggerFlag==false) && (H238_OK==true) && (H239_OK==true) && (H236_OK==true) && (H237_OK==true) && (H23A_OK==true) && (H23B_OK==true) )
{
if( H36D_OK==false )
{
H36D_OK = true;
H236 = false; H237=false; H238=false; H239=false; H23A=false; H23B=false;
H236_OK = false; H237_OK=false; H238_OK=false; H239_OK=false; H23A_OK=false; H23B_OK=false;
執行另1動作;
}
}
}
}


[/code]
eric2339
一般會員


發表:21
回覆:14
積分:7
註冊:2007-11-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-11-06 13:09:45 IP:59.124.xxx.xxx 訂閱

===================引 用 2007 文 章===================

是這樣子嗎??

[code cpp]

bool TriggerFlag = false;
if(H_Cut == false)
{
H_Cut = true;
if(H36D_OK == false)
{
if(H238_OK==false)
{
if(H238==false)
{
if( Lccd()==1) {
H238 = true;
執行動作一
TriggerFlag = true;
}
else{
H238_OK = true;
}
}
}
if(READ_AA==true){
H238_OK = true;
}

if( (TriggerFlag==false) && (H238_OK==true) )
{
if(H239_OK==false)
{
if(H239==false)
{
if(R_CCD()==1)
{
H239 = true;
執行動作二
TriggerFlag = true;
}
else{
H239_OK = true;
}
}
}
if (READ_AB==true){
H239_OK=true;
}
}

if( (TriggerFlag==false) && (H238_OK==true) && (H239_OK==true) )
{
if (H236_OK==false)
{
if (H236==false)
{
if (L_Check_Height_Cutting()==1){
H236 = true;
執行動作三;
TriggerFlag = true;
}
else{
H236_OK = true;
}
}
}
if (READ_AC == true){
H236_OK = true;
}
}

if( (TriggerFlag==false) && (H238_OK==true) && (H239_OK==true) && (H236_OK==true))
{
if (H237_OK==false)
{
if (H237==false)
{
if (R_Check_Height() == 1){
H237 = true;
執行動作四;
TriggerFlag = true;
}
else{
H237_OK=true;
return;
}
}
}
if (READ_HH139[23]==true) H237_OK=true;
}

if( (TriggerFlag==false) && (H238_OK==true)&&(H239_OK==true)&&(H236_OK==true)&&(H237_OK==true))
{
if (H23A_OK==false)
{
if (H23A==false)
{
if (Kuf_Left_Check()==1){
H23A=true;
執行動作五;
TriggerFlag = true;
}
else{
H23A_OK = true;
}
}
}
if(READ_HH139[26]==true){
H23A_OK = true;
}
}

if( (TriggerFlag==false) && (H238_OK=true) && (H239_OK==true) && (H236_OK==true) && (H237_OK==true) && (H23A_OK==true) )
{
if (H23B_OK==false)
{
if (H23B==false)
{
if (Kuf_Right_Check()==1)
{
H23B = true;
執行動作六;
TriggerFlag = true;
}
else{
H23B_OK=true;
}
}
}
if(READ_HH139[27]==true){
H23B_OK = true;
}
}

if( (TriggerFlag==false) && (H238_OK==true) && (H239_OK==true) && (H236_OK==true) && (H237_OK==true) && (H23A_OK==true) && (H23B_OK==true) )
{
if( H36D_OK==false )
{
H36D_OK = true;
H236 = false; H237=false; H238=false; H239=false; H23A=false; H23B=false;
H236_OK = false; H237_OK=false; H238_OK=false; H239_OK=false; H23A_OK=false; H23B_OK=false;
執行另1動作;
}
}
}
}


[/code]

應該不是吧,上述的話,應該不會有判斷完1後,再判斷2吧!不是嗎?
2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-11-06 13:19:26 IP:220.132.xxx.xxx 未訂閱

動作二是否可以執行,要看動作一是否完成~~ 是嗎??

同樣的,動作三是否可以執行,要看動作二是否完成~~ 是嗎??
.
.
.
.
.
.

===================引 用 2007 文 章===================
應該不是吧,上述的話,應該不會有判斷完1後,再判斷2吧!不是嗎?
eric2339
一般會員


發表:21
回覆:14
積分:7
註冊:2007-11-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-11-07 01:23:11 IP:118.169.xxx.xxx 訂閱
動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作,若沒有,則判斷動作2。
謝謝



===================引 用 2007 文 章===================

動作二是否可以執行,要看動作一是否完成~~ 是嗎??

同樣的,動作三是否可以執行,要看動作二是否完成~~ 是嗎??
.
.
.
.
.
.

===================引 用 2007 文 章===================
應該不是吧,上述的話,應該不會有判斷完1後,再判斷2吧!不是嗎?
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-11-07 07:57:48 IP:211.72.xxx.xxx 訂閱
您的問題, 若用流程圖表達, 就不會兜圈子了.

您希望的是如此嗎?
若進本段程式, 開始流程:
若 (1) OK 才做 (2), 否則結束(return).
若 (2) OK 才做 (3), 否則結束(return).
做完 (3), 結束(return)

若是, 下列應合用:
if (Condition1) {
Code1;
if (Code1 Error) return;
if (Condition2) {
Code2;
if (Code2 Error) return;
Code3;
}
}
2007
中階會員


發表:54
回覆:90
積分:98
註冊:2008-08-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-11-07 08:21:27 IP:220.132.xxx.xxx 未訂閱
也許我的愚笨,看不懂你的流程~~

一、
有觸發則進行動作,若沒有,則判斷動作2。 <--- 有觸發則進行動作 這動作是指動作二嗎?? 是的話,怎麼後面又出現一句若沒有則判斷動作二。
還是你的意思是!!! 動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作1,若沒有,則判斷動作2。

二、
執行動作一完成的話 --->H238 = true; 是嗎??
執行動作二 完成的話 --->H239 = true; 是嗎??
執行動作三完成的話 --->H236 = true; 是嗎??
執行動作四完成的話 --->H237 = true; 是嗎??
執行動作五完成的話 --->H23A=true; 是嗎??
執行動作六完成的話 --->H23B = true; 是嗎??

三、你說:假設今天 要先看 1 是否有觸發,才能看 2 是否有觸發,才能再看 3 是否有觸發,
若1、2 、3 都未觸發,則執行另一個開始的動作。

那是不是1觸發了,執行了動作一,動作二、動作三、動作四 就不執行,
就是說如果有執行某一個 動作後,其它的動作就不執行???


四、也許如大大所說把 全部的 return 拿掉就好了。
===================引 用 eric2339 文 章===================
動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作,若沒有,則判斷動作2。
謝謝



===================引 用 2007 文 章===================

動作二是否可以執行,要看動作一是否完成~~ 是嗎??

同樣的,動作三是否可以執行,要看動作二是否完成~~ 是嗎??
.
.
.
.
.
.

===================引 用 2007 文 章===================
應該不是吧,上述的話,應該不會有判斷完1後,再判斷2吧!不是嗎?
編輯記錄
2007 重新編輯於 2008-11-07 08:30:40, 註解 無‧
2007 重新編輯於 2008-11-07 08:39:26, 註解 無‧
2007 重新編輯於 2008-11-07 08:49:52, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-11-10 08:09:19 IP:59.125.xxx.xxx 訂閱
會不會列真值表?會不會做簡化阿?
看到那麼多 if ,我都暈了,你也應該物煞煞吧

會用真值表,就會簡單許多,你該學一下



===================引 用 2007 文 章===================
也許我的愚笨,看不懂你的流程~~

一、
有觸發則進行動作,若沒有,則判斷動作2。 <--- 有觸發則進行動作 這動作是指動作二嗎?? 是的話,怎麼後面又出現一句若沒有則判斷動作二。
還是你的意思是!!! 動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作1,若沒有,則判斷動作2。

二、
執行動作一完成的話 --->H238 = true; 是嗎??
執行動作二 完成的話 --->H239 = true; 是嗎??
執行動作三完成的話 --->H236 = true; 是嗎??
執行動作四完成的話 --->H237 = true; 是嗎??
執行動作五完成的話 --->H23A=true; 是嗎??
執行動作六完成的話 --->H23B = true; 是嗎??

三、你說:假設今天 要先看 1 是否有觸發,才能看 2 是否有觸發,才能再看 3 是否有觸發,
若1、2 、3 都未觸發,則執行另一個開始的動作。

那是不是1觸發了,執行了動作一,動作二、動作三、動作四 就不執行,
就是說如果有執行某一個 動作後,其它的動作就不執行???


四、也許如大大所說把 全部的 return 拿掉就好了。
===================引 用 eric2339 文 章===================
動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作,若沒有,則判斷動作2。
謝謝



===================引 用 2007 文 章===================

動作二是否可以執行,要看動作一是否完成~~ 是嗎??

同樣的,動作三是否可以執行,要看動作二是否完成~~ 是嗎??
.
.
.
.
.
.

===================引 用 2007 文 章===================
應該不是吧,上述的話,應該不會有判斷完1後,再判斷2吧!不是嗎?
eric2339
一般會員


發表:21
回覆:14
積分:7
註冊:2007-11-27

發送簡訊給我
#13 引用回覆 回覆 發表時間:2008-11-10 17:58:00 IP:59.124.xxx.xxx 訂閱
A,B,C,D1,2,3,4
0
0
0
0
0
1
0
1
1
1
1
1
1

如果是真值表的話,應該就是上列圖表顯示了。看到各位這樣的幫忙,雖然還沒有答案,但讓小弟感到很開心,謝謝!
===================引 用 syntax 文 章===================
會不會列真值表?會不會做簡化阿?
看到那麼多 if ,我都暈了,你也應該物煞煞吧

會用真值表,就會簡單許多,你該學一下



===================引 用 2007 文 章===================
也許我的愚笨,看不懂你的流程~~

一、
有觸發則進行動作,若沒有,則判斷動作2。 <--- 有觸發則進行動作 這動作是指動作二嗎?? 是的話,怎麼後面又出現一句若沒有則判斷動作二。
還是你的意思是!!! 動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作1,若沒有,則判斷動作2。

二、
執行動作一完成的話 --->H238 = true; 是嗎??
執行動作二 完成的話 --->H239 = true; 是嗎??
執行動作三完成的話 --->H236 = true; 是嗎??
執行動作四完成的話 --->H237 = true; 是嗎??
執行動作五完成的話 --->H23A=true; 是嗎??
執行動作六完成的話 --->H23B = true; 是嗎??

三、你說:假設今天 要先看 1 是否有觸發,才能看 2 是否有觸發,才能再看 3 是否有觸發,
若1、2 、3 都未觸發,則執行另一個開始的動作。

那是不是1觸發了,執行了動作一,動作二、動作三、動作四 就不執行,
就是說如果有執行某一個 動作後,其它的動作就不執行???


四、也許如大大所說把 全部的 return 拿掉就好了。
===================引 用 eric2339 文 章===================
動作二是否可以執行,要看動作1是否觸發,有觸發則進行動作,若沒有,則判斷動作2。
謝謝



===================引 用 2007 文 章===================

動作二是否可以執行,要看動作一是否完成~~ 是嗎??

同樣的,動作三是否可以執行,要看動作二是否完成~~ 是嗎??
.
.
.
.
.
.

===================引 用 2007 文 章===================
應該不是吧,上述的話,應該不會有判斷完1後,再判斷2吧!不是嗎?
系統時間:2024-04-19 11:00:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!