解決策
問題:
この問題は、いくつかのシナリオで発生する可能性があります。
- まず、Forループのカウント(N)端子にゼロ値を配線すると、そこを通過する情報はすべて失われます。これは、ループ内部が実行されていないためです。そのため、データをForループの出力端子に渡すことはできません。これにより、Forループの入力トンネルに提供されたデータが事実上失われます。たとえば、下記のスニペットでは数値制御器と初期化された配列を、ゼロ回実行するように構成されたForループに渡しています。データフローがループ内で中断されるため、2つの出力は初期化されません。
- 次に、Forループを初期化された配列要素の数よりも少ない回数実行すると、配列からデータを失うこともあります。たとえば、下記のスニペットのように3回実行するように設定された配列への入力として6つの数値が含まれている配列がある場合、出力配列は最初の3つの数値だけを保持します。
解決策:
データを保存するには、トンネルをシフトレジスタに変更します。このシフトレジスタはデータのメモリ割り当てを作成し、たとえループがゼロ回実行するように設定されていても、データがForループの出力で保存されることを可能にします。トンネルをシフトレジスタに変更するには、入力トンネルを右クリックしてシフトレジスタと置換を選択します。Forループの反復回数が自動インデックス配列またはファイルから決定される場合は、データの損失を防ぐためにサイズをゼロにしないでください。