1 返信 最新の回答 日時: May 27, 2010 7:05 AM ユーザー:youkazu7777

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

    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になっているので,式は正しく評価されているのですが,なぜかループから抜けなくて困っています.

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