AnsweredAssumed Answered

間違ってはいないはずなのに・・・Loopから抜けられない

Question asked by youkazu7777 on May 27, 2010
Latest reply on May 27, 2010 by youkazu7777

タイトル

間違ってはいないはずなのに・・・Loopから抜けられない

フォーラムに投稿

まいど質問ばかりで恐縮なのですが,全く見当がつかず困っています.

もしおわかりになる方がいらっしゃったら教えてください.

 

 

【概要】

「明細」テーブル 

フィールドは,「ID」 「生徒ID」 「親ID」 「金額」

親IDで自己リレーションを組み,ポータル内で,「生徒ID」と「金額」を展開

たとえば,3人兄弟ならポータル内に,ことなる3つの「生徒ID」で3行以上のポータルが表示されていますので,

スクリプトでこの3人の誰が一番金額が高いかを調べます.(生徒IDにつき明細は複数行あります)

 

まず,IDの一覧を取得して,繰り返し変数に代入します.

次にその各々のIDに対し金額の合計を求め,同様に繰り返し変数に代入します→「$子供の月謝[6]」 

(6人兄弟まで対応できるように繰り返し数は6としてあります. )

 ここまでは,問題なく行きました.

この次に,どの兄弟が一番月謝が高いかを調べるためにソートを行います.

バブルソートのアルゴリズムを参考に,ファイルメーカーのスクリプトに適したかたちに適当に書き換えて 下記のようなスクリプトを書きましたが,

なぜか,外側のループを抜けることができず,無限ループになってしまいます.

 

//このスクリプトの前の処理

//「$子供の人数」…子供の人数が代入されています.

//「$子供の月謝[6]」…こどもそれぞれの月謝を記録しています.

//この段階ではソートが終わっていません.

 

//ソート処理(バブルソート:降順)

・変数を設定[$Counter;値;0]

・変数を設定[$i;値:$子供の人数]

・変数を設定[$temp;値;0]

・Loop

・Loop
 ・If[$子供の月謝[$i] > $子供の月謝[$i-1]]
 ・変数を設定[$temp;値$子供の月謝[$i]]
 ・変数を設定[$子供の月謝[$i];値;$子供の月謝[$i-1]]
 ・変数を設定[$子供の月謝[$i-1];値;$temp]
 ・End if
 ・変数を設定[$i;値;$i-1]
・Exit Loop If[$i ≦ $Counter +1]
・End Loop
・変数を設定[$Counter;値;$Counter+1]
・変数を設定[$i;値;$子供の人数]
・Exit Loop If[($子供の人数-1)≦$Counter]

・End Loop

 

最後から2行目のExit Loop Ifを監視してみたところ,生徒数が3人のとき2週目 

ぐらいから,値は0から1になっているので,式は正しく評価されているのですが,なぜかループから抜けなくて困っています.

これはバグということはあり得るでしょうか??

 

Outcomes