• 締切済み

UWSCでの多重ループ

最近プログラムを組み始めた初心者です。 メインのAというループの中にもう一つBというループを作り、Bの条件が満たされたら又Aのループに戻る というスクリプトを書きたいのですがどのようにすればよいでしょうか? While~Wendでいけると思ってやってみたのですがなかなかうまくいきません。 どなたか手ほどきをよろしくお願いします。 ループA(メインループ)←←                ↑                ↑    ループB(サブループ)この中の条件が満たされた時ループAに戻る方法    ループB終わり ループA終わり

みんなの回答

noname#20957
noname#20957
回答No.1

↓ならトレース結果まで示した解説がありますので参考になります。

参考URL:
http://park14.wakwak.com/~simizu/
dolphin_2006
質問者

お礼

返事が遅れてしまいすいませんでした; 試行錯誤しているうちに偶然ループを抜けるシーケンスを発見してしまいました^^; まだ分からないことが沢山あるので行き詰った時にこのサイトで調べてみることにします。 ありがとうございました

関連するQ&A

  • UWSC 無限ループ

    UWSCで A.uws と B.uwsを無限ループさせたくて // 無限ループ While True Call A.uws // xxxx.uws 記録保存したスクリプト名 Call B.uws // xxxx.uws 記録保存したスクリプト名 Wend と記述したのですが、A.uwsは読み込まれたのですがB.uwsが読み込まれません。 具体的に、どこがどうおかしいか、このスクリプトでは出来ない場合、実際に両方を無限ループさせたい場合どう記述すれば良いのか教えて下さい。

  • UWSCについて質問です。

    UWSCについて質問です。 特定のボタンを押している間だけループさせるスクリプトを組むにはどうすればいいでしょうか? ボタンを押している間はループされ、ボタンを押していない時は処理が止まる といったようなスクリプトをくみたいのですがどうもうまくいきません。処理させるスクリプト自体は簡単で NUMPAD7を押している間はAの処理 NUMPAD8を押している間はBの処理 NUMPAD9を押している間はCの処理 といった具合にスクリプトを組みたいのですがどうすればよろしいでしょうか? 教えて頂けると助かります。 ちなみに行う処理は以下のとおりです。 処理A BTN(LEFT,CLICK,450,500,10) BTN(VK_3,CLICK,10) while true //7を押している間はここからループ開始 BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,700,660,10) Wend 処理B while true BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,700,660,10) Wend 処理C while true BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,400,660,10) wend

  • 多重ループの抜け方

    例えば2重ループで、内側のループと外側のループも抜けたいとき、 while(true){  boolean flag = false;  …  while(true){   if(/* ある条件を満たした時 */) {    flag = true;    break;   }  }  if(flag){ break; } } としているのですが、このループが3段、4段になるときもこのような方法しかないのでしょうか?C言語のgotoみたいなことはできないですよね・・? (goto自体使わない方がいいと言われていますが・・)

    • ベストアンサー
    • Java
  • While ~ Wend、の使い方、ループから脱却

    While <条件> ・・・ Wend Whileの隣の<条件>以外にループを脱却する方法はどうするのですか? For ~ Next では、Exit For、があるとおもうんですが? よろしくお願いします

  • UWSC 終了と再起動

    UWSCで終了したスクリプトを再稼働させる手立てはない物かと模索しております。 実際に使用しているスクリプトについては文字数制限やプライバシーから提供することができませんので、省略した物を下に記載しておきます。 ---------------メイン---------------- //スレッド宣言 Thread A //メインループ While true      ・      ・      ・ Wend //並列処理(3秒ごとに) Procedure A   While true //ソフトが不具合で終了した場合スクリプト終了      ID = GetID("ソフト")     If (ID < 0) Then ExitExit         //特定の画像が表示された場合スクリプト終了 If Chkimg("画像.bmp",0) Then ExitExit //3秒待機 Sleep(3.0)   Wend Fend ------------------------------------ 目的としては、エラーを感知してExitExitでメインスクリプトを終了させた後、以下のような流れを作りたいのです。 終了(ExitExitでなくてもokです) ↓ ソフト再起動スクリプトの実行(再起用のスクリプトは制作済み) ↓ メインにもどる スレッド"A"でエラーのを行っているため。ContinueやRepeatによる操作ができないため、非常に困っております。 またメインスレッドは1万行近くある為、変更が非常に困難ですので、スレッドAのみで実現できればと考えております。 どうにも説明が難しく難解な文になってしまいましたが、ご理解いただければ幸いです。 分かる方がいらっしゃいましたら、是非ご回答の方お願いいたします。

  • UWSCで指定箇所のみループ

    UWSCで指定した箇所へ戻ってループさせたいのですが、やり方がわかりません。 上手く説明ができないのですが… 例えば… while True Z地点 //Aの画像があればクリックしてX地点へ ifb CHKIMG("画像A") x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 300) endif X地点 //Bの画像があればクリック、無ければZ地点へ戻る ifb CHKIMG("画像B") x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 300) endif wend という感じで…、状況によってプログラムの指定した行へ移動させたいのですが どうすれば良いのでしょうか? 上手く説明できなくてすみませんが、教えてください。 よろしくお願いします。

  • VBA 条件分岐について

    VBAで以下のような動作を創るにはどのようにすればよいか教えてください。 通常 A から Bを繰りえしていて、Aの直下にある条件でループを続けるかこのループを抜けて終了するというプログラムにAとBの間にさらに条件文を入れてこの条件分でAに戻すかBまで行ってAからを繰り返すかという動作を指定する場合の方法を教えてください。 イメージとして以下の感じです。 While Counter = ""      ’A Counter = Counter + 1          ・・・・・・・・     この部分にX=0ならAに戻してX=0出なければA以下を繰り返す Wend     ’B という感じです。 ご教授お願いします。

  • ループを途中で抜けたいのですが。

    無限ループさせているwhileやfor文などで、 何かのキーを押すとループを抜けるように設定したいのですが可能でしょうか? (scanfやcinなどをループの中に組み込まずに。ctrl+Cも無しで。) (あと、フォーム上ではなくコンソール上で。) 多分説明不足なのでもうちょっと詳しく。 たとえば、 while ( i != 1 ){ j += 1; } の様な無限ループを設定したとして、 本来なら if (j > 100 ){ break; } とか、 while文の中に scanf ( "%d" , &i ); 等を入れて終了条件を満たさせるべきですが、 そうではなく、ひたすら無限ループを続けているところにEscキーを押すとループから脱出するようなプログラムを作ってみたいのです。 そういうプログラムは可能でしょうか? どうかご教授下さい。 使用コンパイラ:Visual C++ 2008 Express Edition

  • ループの中にループ

    while文の中にwhile文をする方法はありますでしょうか? 最初のwhile文は指定回数のループで その中のwhile文はデータベースの検索結果数分だけループするためのwhileです。

    • ベストアンサー
    • PHP
  • uwscで画像がうまく認識できない

    while 1 if CHKIMG("gazou/A.bmp",-1,,,,) > 0 then break wend で画面上にAという画像は認識した後、 その少し左隣にあるBという画像を認識したいのですが上手くいきません while 1 if CHKIMG("gazou/B.bmp",-1,G_IMG_X-24,G_IMG_Y-7,G_IMG_X-1,G_IMG_Y+24) > 0 then break wend という感じでやったらループから帰ってこなくなりました 座標を G_IMG_X-24,G_IMG_Y-7,G_IMG_X-1,G_IMG_Y+24 から普通の数字の組み合わせにしたらちゃんと認識できたので この書き方が間違っているというのはわかるんですが、 どうしてもAの画像の座標から左にずれたこの位置を指定したいのです。 ですが自分はこの書き方以外知らないのです・・・ Aの画像を認識した後に、 そのAの画像があった座標から(X-27,Y-7,X-1,Y+24)ほどずれた位置を指定して その範囲にB画像があるかどうか確かめるということをするには どうすればいいのでしょうか?

専門家に質問してみよう