From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



LabVIEWでForループから途中で抜け出すことは可能ですか?



使用ソフトウェア:
使用ソフトウェア・バージョン: 7.1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: LabVIEW Development Systems>>LabVIEW Base Package, LabVIEW Development Systems>>LabVIEW Professional Development System

問題:
Forループが指定された回数分実行される前に途中で抜け出すことは可能ですか?可能な場合、どのようにプログラミングすればいいですか?

解決策:
あらかじめ指定された回数分実行される前に Forループから途中で抜け出すような動作は良い方法ではありません。途中で抜け出すと、リファレンスなどが指定されないまま終了したり、割り当てられたメモリが開放されない現象が起きる可能性があります。このような理由から、LabVIEW バージョン 8.2以前 まではFor ループの途中で抜け出すような条件端子をサポートしていませんでした。

しかし、より柔軟なプログラム開発ができるように、LabVIEW バージョン8.5よりForループ実行の途中でも 停止が可能になりました。 デフォルトではありませんが、For ループのストラクチャを右クリックして、条件端子を選択すると条件端子がFor ループに配置され、カウント(N)端子よりも優先されて実行されます。これにより、Forループの反復回数に達しているかどうか、Whileループの停止条件が満たされているかどうかを組み合わせて使う方法が条件端子付きのForループによって実現されました。

この機能はLabVIEW バージョン 8.2以前ではサポートされていません。しかしながら 一回のループごとに停止条件が満たされているかどうかをチェックするWhileループを使用することで代用できます。

メモ: LabVIEW バージョン2009以降では、ループ反復を並列実行が可能になり、計算が複雑な場合に使用することでパフォーマンスが向上しますが、この機能は一つのFor ループに条件端子が追加されている場合は無効になります。

条件端子付きのForループ
図1. 条件端子を配置したForループ

並列化可能なループの検索結果
図2. ツールメニュー » プロファイル » 並列化可能なループの検索...の実行結果



関連リンク:
DeveloperZone チュートリアル: 並列 For ループで「もっと速く」


添付:
ForLoop.zip




報告日時: 12/09/2004
最終更新日: 04/06/2011
ドキュメントID: 3G8I7SL2