請教一些迴圈的問題

請教各位高手(如圖),當我按下布林開關後,Case Structure裡面的For Loop跟While Loop可以同時啟動,但是請問要如何做才能使Case Structure裡面的For Loop跟While Loop同時停止?

是這樣嗎?

[QUOTE=EdwardHuang]

是這樣嗎?

[/QUOTE]感謝大大回覆,可能我的要求沒說明清楚,此種作法似乎限定while loop跑的圈數根for loop一樣,但是我的for loop內的程式比較多,跑的時間跟while loop不一樣,所以無法達到同步停止的功能,布過還是感謝你。

LabVIEW 8.5以前的版本是無法做到 .8.5以後For loop會多了Conditional terminal的功能            

[QUOTE=mjking][QUOTE=EdwardHuang]

是這樣嗎?

[/QUOTE]感謝大大回覆,可能我的要求沒說明清楚,此種作法似乎限定while loop跑的圈數根for loop一樣,但是我的for loop內的程式比較多,跑的時間跟while loop不一樣,所以無法達到同步停止的功能,布過還是感謝你。[/QUOTE]

你好:

讀完你的程式發現你的程式邏輯有點問題(紅字部份),如果有誤煩請各位好手不吝指正。

回到正題,1.for loop執行前一定要宣告迴圈數;2.如果你目的是要兩迴圈同時停止,與兩迴圈內部程式繁簡無關,因為你最外部還有一個while loop作為程式最終開關,在for loop迴圈數大於while loop條件下,只要設定好布林一定能同步關閉。

如果你的目的是while loop停止時,for loop同時跑完,可以利用falt structure來做到,因手邊電腦沒有LabView晚些在補圖例。

希望有幫助。

simoncat39962.0955092593

[QUOTE=simoncat][QUOTE=mjking][QUOTE=EdwardHuang]

是這樣嗎?

[/QUOTE]感謝大大回覆,可能我的要求沒說明清楚,此種作法似乎限定while loop跑的圈數根for loop一樣,但是我的for loop內的程式比較多,跑的時間跟while loop不一樣,所以無法達到同步停止的功能,布過還是感謝你。[/QUOTE]

你好:

讀完你的程式發現你的程式邏輯有點問題(紅字部份),如果有誤煩請各位好手不吝指正。

回到正題,1.for loop執行前一定要宣告迴圈數;2.如果你目的是要兩迴圈同時停止,與兩迴圈內部程式繁簡無關,因為你最外部還有一個while loop作為程式最終開關,在for loop迴圈數大於while loop條件下,只要設定好布林一定能同步關閉。

如果你的目的是while loop停止時,for loop同時跑完,可以利用falt structure來做到,因手邊電腦沒有LabView晚些在補圖例。

希望有幫助。

[/QUOTE]

感謝您的回覆,可能我的說明不是很清楚吧。

我的For Loop有宣告回圏數(如圖例),再來我的目的是想要當For Loop跑完時,While Loop跟著停止,而最外部的While Loop是當我轉成執行檔時,每一次執行該檔時,程式會自動run,所以基本上不會停止。

我想了一下如何用falt structure實現,可是找不到方法,可否請大大指導一下。

感謝您的賜教!!

不知道這樣是不是滿足妳的要求

![](upload://31fpVyJPXUYssri9WUM36TzQXe5.jpeg)

這樣的邏輯好像怪怪的

但是寫了以下的程式 看看是不是符合你需求  SSloop.vi

*補充一下: 基本上有辦法可以控制For loop的停止嗎?(由使用者隨意停止) 如果可以才有辦法做到For Loop與While Loop同時停止, 可能要請其他有經驗的前輩指導

 

NewHandAlex39966.4155671296

善用Rendezvous

應該可以達到你想要的功能

 

[QUOTE=NewHandAlex]

這樣的邏輯好像怪怪的

但是寫了以下的程式 看看是不是符合你需求  SSloop.vi

![](upload://ukLHt4TaszI2mOvdOemrwDT9i9m.jpeg)

*補充一下: 基本上有辦法可以控制For loop的停止嗎?(由使用者隨意停止) 如果可以才有辦法做到For Loop與While Loop同時停止, 可能要請其他有經驗的前輩指導

 

[/QUOTE]

感謝大大的指教,用以上方式問題已解決。

[QUOTE=wu7028]

善用Rendezvous

應該可以達到你想要的功能

 

[/QUOTE]

可否冒昧請教大大,您提到的Rendezvous是什麼東西?小弟是新手,對LV還不是很熟悉。

使用Rendezvous,可以讓兩個或多個loop執行次數一致,比較接近同步的功能

wu7028,

可否請問Rendezvous和Queue,Notify及Occurance之間是否用途是一樣或有差異?

[QUOTE=mjking][QUOTE=simoncat][QUOTE=mjking][QUOTE=EdwardHuang]

是這樣嗎?

[/QUOTE]感謝大大回覆,可能我的要求沒說明清楚,此種作法似乎限定while loop跑的圈數根for loop一樣,但是我的for loop內的程式比較多,跑的時間跟while loop不一樣,所以無法達到同步停止的功能,布過還是感謝你。[/QUOTE]

你好:

讀完你的程式發現你的程式邏輯有點問題(紅字部份),如果有誤煩請各位好手不吝指正。

回到正題,1.for loop執行前一定要宣告迴圈數;2.如果你目的是要兩迴圈同時停止,與兩迴圈內部程式繁簡無關,因為你最外部還有一個while loop作為程式最終開關,在for loop迴圈數大於while loop條件下,只要設定好布林一定能同步關閉。

如果你的目的是while loop停止時,for loop同時跑完,可以利用falt structure來做到,因手邊電腦沒有LabView晚些在補圖例。

希望有幫助。

[/QUOTE]

感謝您的回覆,可能我的說明不是很清楚吧。

我的For Loop有宣告回圏數(如圖例),再來我的目的是想要當For Loop跑完時,While Loop跟著停止,而最外部的While Loop是當我轉成執行檔時,每一次執行該檔時,程式會自動run,所以基本上不會停止。

我想了一下如何用falt structure實現,可是找不到方法,可否請大大指導一下。

感謝您的賜教!!

[/QUOTE]

先恭喜妳問題解決

我補上次說的圖解,當作另一參考

simoncat39968.7925115741

[QUOTE=simoncat][QUOTE=mjking][QUOTE=simoncat][QUOTE=mjking][QUOTE=EdwardHuang]

先恭喜妳問題解決

我補上次說的圖解,當作另一參考

[/QUOTE]

感謝大大熱情參與討論,不過您可能誤解的意思了唷,您上述作法是讓While Loop跟For Loop執行圈數一樣,不是2個Loop同步開始和停止唷,不過依然非常感謝您啦!!