以下のようにLINEだったらGoTo LINのほうに進みそう出ない場合はCIRCLEに進みCIRCLEでなければARCにいくといったIf文をつくったのですが、一回目のCIRCLEの場合は表示してくれるのに二回目のCIRCLEのときにARCの方で処理をしてしまいます。書き方がおかしいのでしょうか?
i = 0
Do While Not spt(i) = "EOF " i = i + 2
If spt(i) = "LINE" Then
GoTo LIN
ElseIf spt(i) = "CIRCLE" Then
GoTo CIR
ElseIf spt(i) = "ARC" Then
GoTo ARC
End If
Loop
i = 0
Do While Not spt(i) = "EOF "
i = i + 2
If spt(i) = "LINE" Then
GoTo LIN
ElseIf spt(i) = "CIRCLE" Then
GoTo CIR
ElseIf spt(i) = "ARC" Then
GoTo ARC1
End If
Loop
> 蚊 2005/06/11(土) 22:53:26
> 以下のようにLINEだったらGoTo LINのほうに進みそう出ない場合はCIRCLEに進みCIRCLEでなければARCにいくといったIf文をつくったのですが、一回目のCIRCLEの場合は表示してくれるのに二回目のCIRCLEのときにARCの方で処理をしてしまいます。書き方がおかしいのでしょうか?
> 蚊 2005/06/11(土) 22:54:24
> i = 0
> Do While Not spt(i) = "EOF "
> i = i + 2
>
> If spt(i) = "LINE" Then
> GoTo LIN
>
> ElseIf spt(i) = "CIRCLE" Then
> GoTo CIR
>
> ElseIf spt(i) = "ARC" Then
> GoTo ARC1
>
> End If
> Loop
i = i + 2があやしいし、GoTo使いすぎ。
でも、多分
・書いていない部分に問題がある。
と思われ。
> 書き方がおかしいのでしょうか?
そうでしょう。
ま、"ここ"と指定する部分が書いていない部分ですので、どうしようもありませんね。
人にデバッグ頼むんじゃなくて、素直に自分でやってみては?
GoTo文は、On Error Goto xxx以外では、使わないようにしましょう。
っていうか、GoTo文を使わないでプログラムが書けるはずです。
という訳で、GoToを使わない方法でやってみてください。
具体的にどうすればいいかは、掲示のコードには、GoTo文で
ジャンプしてるところの部分がわからないので、回答は難しいです。
GoToにこだわりすぎていたみたいです。
GoToをしないでしてみたらできました。みなさんすみませんでした。
ツイート | ![]() |