投稿
IF文をいじりすぎてENDIFがどこに対応してるかわからなくなる、よくあるのです。…………俺だけ?
7そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
桁下げを行うと見やすくなりますよ。 IF A==0 THEN A=A+1 ELSE A=A+10 ENDIF こんな感じで。
3そうだね
プレイ済み
返信[2]
親投稿
ねるか~ gueityju9806
ELSEとIFが繋がったELSEIFを使えばENDIFは一つだけで済みます。(ver.3.1以降で使用可能)
1そうだね
プレイ済み
返信[3]
親投稿
みどりむし shiyon_29
IF A THEN  A=0 ELSE  INC A  ENDIF ENDIFを下げない方が見やすいかも
0そうだね
プレイ済み
返信[4]
親投稿
say sayer.exe
ENDIFに限らず、ELSEも地味に挙動を迷わせますね IF A==1 THEN IF B==1 THEN @FOO ELSE @WOW この場合、ELSEはどっちのIFに対応するんでしょう?
0そうだね
プレイ済み
返信[5]
親投稿
say sayer.exe
IF入れ子は昔から議論されてるようです ぼくだったら、入れ子しなければならない状態になったら、めんどくさいのでサブルーチンジャンプかましちゃいます IF A==1 THEN @HOGE ELSE @WOW @BACK : @HOGE IF B==1 THEN @FOO GOTO @BACK'前IFに対応させたい場合 IF A==1 THEN @HOGE @BACK : @HOGE IF B==1 THEN @FOO ELSE @WOW GOTO @BACK'後IFに対応させたい場合
1そうだね
プレイ済み
返信[6]
親投稿
入れ子やってる人がやっぱり多いですねー、参考になります。いまはコメントつかって最初と最後を括ってるけどサブルーチンにぶっ飛ばすって発想はなかった。
0そうだね
プレイ済み
返信[7]
親投稿
say sayer.exe
見通しが悪くなるけど、サブルーチンジャンブさせなきゃ回避しようがない BASICの仕様の問題なんで、なんとも辛いところです
0そうだね
プレイ済み
返信[8]
親投稿
入れ子は3重ぐらいまでならインデントを利用すればそんなには複雑にならない気がします。 ただそれ以上の場合は、そもそも構成が悪い可能性もありますが、どちらにせよユーザー定義命令や関数に分けてループの数を減らすのがいいですね。 まあ処理速度を出す為にわざとループを深く組む場合もありますけどね。 あと1行でネストさせるのは1画面プログラムなどの特殊な場合を除いて避けたほうが無難かなーって思いますね〜
0そうだね
プレイ済み