Do と If の構文について

解決


  2005-06-12 07:53:26  No: 122493

以下のように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


  2005-06-12 07:54:24  No: 122494

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-12 08:08:09  No: 122495

> 蚊 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使いすぎ。
でも、多分
・書いていない部分に問題がある。
と思われ。

> 書き方がおかしいのでしょうか?
そうでしょう。
ま、"ここ"と指定する部分が書いていない部分ですので、どうしようもありませんね。
人にデバッグ頼むんじゃなくて、素直に自分でやってみては?


LESIA  2005-06-12 08:48:14  No: 122496

GoTo文は、On Error Goto xxx以外では、使わないようにしましょう。
っていうか、GoTo文を使わないでプログラムが書けるはずです。
という訳で、GoToを使わない方法でやってみてください。
具体的にどうすればいいかは、掲示のコードには、GoTo文で
ジャンプしてるところの部分がわからないので、回答は難しいです。


  2005-06-12 14:55:36  No: 122497

GoToにこだわりすぎていたみたいです。
GoToをしないでしてみたらできました。みなさんすみませんでした。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加