• ベストアンサー

10進ベーシックでループを抜けたい

for文で作った2重ループの中にif文があります。 if文の条件を満たしたらループを抜けるようにしたいのですが、 「goto 行番号」や「EXIT FOR」 を使ってもうまくいきません。 一度に2重ループを抜けたいのですが、どうすればいいでしょうか?

  • n1079
  • お礼率60% (70/115)

質問者が選んだベストアンサー

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.2

このようなページがありました (仮称)十進BASICのホームページ > Full BASICと十進BASICの Q&A > アルゴリズムの記述 > 多重ループから抜ける方法 http://hp.vector.co.jp/authors/VA008683/QA_LOOP.htm

n1079
質問者

お礼

回答ありがとうございます!

その他の回答 (1)

noname#99913
noname#99913
回答No.1

for A=... ... for B=... ... if 条件 exit for ... next B(この直後に) if 条件 exit for ... next A  これでうまくいきませんか?

n1079
質問者

お礼

回答ありがとうございます! やってみます。

関連するQ&A

  • 多重ループの抜け方

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

    • ベストアンサー
    • Java
  • perl:ループのカウンタ変数の値を保持したい。

    While文のループのなかにfor文でループをまわしているスクリプトなのですが、 forの中でカウンタ変数をつくり、ループ回数を計測しております。 またforの中である条件を満たした際に、lastでforを抜け、引き続きWhileのループを継続するという処理をしております。 $i=0; While(○○){ 処理1    for(××){ 処理2 $i++;      if($i >=100){  処理3       last; } } } ここで、一度for文のif文で一度forループを抜け、Whileでループをし、またforループに突入した際に、前回forループでカウントした$iの値を保持したまま、そのつづきから$iのカウンタを動作させたいのですが、$iの値はforループを抜けるとリセットしてしまいます。 このような場合、どうすれば$iの値を保持できますでしょうか。 お詳しい方、宜しくお願い致します。 ※ネストがうまく表現できず、みずらくてスミマセン。

    • ベストアンサー
    • Perl
  • 多重ループの抜けだし方

    for文などの2重ループや3重ループの抜け出し方を教えてください。 breakは最も内側のループしか抜け出せないんですよね?

  • 実行時エラー92 forループが初期化されていませ

    エクセルVBAでFor Eachを使ってるのですが、 Nextの部分で 実行時エラー92 forループが初期化されていません。 というエラーになります。 On Error GoTo ERR1 For Each myObj In objIE.Document.all.tags("ul") If myObj.className = "" Then '○○の場合 Exit Sub ERR1: If Err.Number = 424 Then On Error GoTo 0 'エラーを解除 '▲▲の場合 If strカテゴリ Like "" Then Exit Sub End If End If End If Next というコードなのですが、どこかおかしいですか?

  • Excel 行削除ループさせたい

    あるデータシートのB列に変数と同じものがあったらその行を削除したいです。 ところが下のようなFor文だと、行を削除した後にFor文の行番号が動いてしまうので、削除できないデータが残ってしまいます。 (1,2行目が削除対象行の場合、1行目を削除した時点で2行目が1行目のところにくるのでFor文から外れる) ループ文をネストさせたりいろいろやってみましたが 上手くいきません。 なにか良い方法は無いでしょうか? ’ラスト行はデータが入っている最後の行 For Each Myrange In シート名.Range("b6:b" & ラスト行) If Myrange.Value = 変数 Then nowrow = Myrange.Row シート名.Rows(nowrow).Delete End If Next

  • 【PHP】条件が一致したときだけループを開始

    条件によってループを開始したりスル―したりする方法はありますか? if文の中だけで完結するループではなく、ループ文の最初と最後だけをスルーしたいのですが、どうしても方法が思い浮かびません。 if(条件){ 判定 } foreach( ){ ← 判定によってここをスルーしたい print "abcdefg"; ← ここは常に実行したい } ← foreach がスルーされているので、ここも消したい foreachの中身が短ければ、2パターン作ればいいと思うのですが、数千行になってしまっているので、できれば条件によってスルーしたいのですが、そもそもPHPでこれは可能なんでしょうか?

    • ベストアンサー
    • PHP
  • C言語における3重ループの定義についての質問です

    多重ループの定義について for文の中にfor文がある場合、多重ループになることはわかったんですが、 3重ループ以上の場合は for文の中にfor文があり、さらにその中にfor文がある時ですか? 例 for( ){ for( ){ for( ){ } } } それとも、for文が重なっている時のfor文の合計数ですか? (例えばfor文の中に別々のfor文が2つある場合) 例 for( ){ for() { } for( ){ } } 上手く説明できないんですが、よろしくお願いします

  • break文でループを一気に抜けるには

    break文でループを一気に(2個以上) 抜けたい場合はどのようにすればいいのでしょうか? たとえば下のプログラムで1から2に抜けたい すなわちifとforの2つの中括弧を同時に抜けたい場合には どうやってbreak文を記述すればいいのでしょうか? (goto文は使わないということでお願いします。 int k=0; int i; for (i=1;i<10;i++){   k++;   printf("%d",k);   if (k == 5){     printf("a");     break;・・・・・・・・・1→   } } printf("finish");・・・・・・・・・2←

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

    無限ループさせている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

  • fortran  繰り返しループから抜きたい

    10 continue   :   :   :  do 100 i=1,10 if (abs(x (i)-y(i)) .lt. 1.0) then r= r + dr goto 100 else goto 1000 end if 100 continue :   : : 1000 contiue end   すべての条件(i=1~10)が満足されたら、ループから抜きたいのですが、出来ませんでした。   教えて頂けませんでしょうか?よろしくお願しますね!*<>*!

専門家に質問してみよう