goto文を使わずに数字を入力したいのですが 樫木 秀樹 2006/07/13 13:07:19 ├外側にもう1対、DO~LOOPを追加したら? 諏訪 雄治 2006/07/13 14:47:00 └INPUT文をループの中に入れてみてはどうでし... 荒田浩二 2006/07/13 21:50:19 └諏訪様、荒田様 樫木 秀樹 2006/07/14 00:21:04
goto文を使わずに数字を入力したいのですが 樫木 秀樹 2006/07/13 13:07:19 ツリーへ
goto文を使わずに数字を入力したいのですが |
返事を書く |
樫木 秀樹 2006/07/13 13:07:19 | |
次のプログラムを goto文を使わずに、 数字の入力を繰り返すようにしたいのですが、 どのようにすれば良いのでしょうか。 SET WINDOW -200,200,-200,200 !DRAW grid(20,20) 10 INPUT PROMPT "数字を入力してください。":a DO SELECT CASE a CASE 1 SET AREA COLOR 2 DRAW disk WITH SCALE(100)*SHIFT(60,0) CHARACTER INPUT s$ IF s$=CHR$(13) THEN CLEAR EXIT DO !enterが押されたら終了する CASE 2 SET AREA COLOR 3 DRAW disk WITH SCALE(50)*SHIFT(30,0) CHARACTER INPUT s$ IF s$=CHR$(13) THEN CLEAR EXIT DO !enterが押されたら終了する END SELECT LOOP GOTO 10 END |
├外側にもう1対、DO~LOOPを追加したら? 諏訪 雄治 2006/07/13 14:47:00 ツリーへ
Re: goto文を使わずに数字を入力したいのですが |
返事を書く |
諏訪 雄治 2006/07/13 14:47:00 | |
外側にもう1対、DO~LOOP を追加したら? EXIT DO は、1段づつしか効かない。 SET WINDOW -200,200,-200,200 !DRAW grid(20,20) DO 10 INPUT PROMPT "数字を入力してください。":a DO SELECT CASE a CASE 1 SET AREA COLOR 2 DRAW disk WITH SCALE(100)*SHIFT(60,0) CHARACTER INPUT s$ IF s$=CHR$(13) THEN CLEAR EXIT DO !enterが押されたら終了する CASE 2 SET AREA COLOR 3 DRAW disk WITH SCALE(50)*SHIFT(30,0) CHARACTER INPUT s$ IF s$=CHR$(13) THEN CLEAR EXIT DO !enterが押されたら終了する END SELECT LOOP LOOP ! GOTO 10 END |
└INPUT文をループの中に入れてみてはどうでし... 荒田浩二 2006/07/13 21:50:19 ツリーへ
Re: goto文を使わずに数字を入力したいのですが |
返事を書く |
荒田浩二 2006/07/13 21:50:19 | |
INPUT文をループの中に入れてみてはどうでしょうか。 SET WINDOW -200,200,-200,200 !DRAW grid(20,20) DO INPUT PROMPT "数字を入力してください。":a SELECT CASE a CASE 1 SET AREA COLOR 2 DRAW disk WITH SCALE(100)*SHIFT(60,0) CHARACTER INPUT s$ IF s$=CHR$(13) THEN CLEAR ! EXIT DO !enterが押されたら終了する CASE 2 SET AREA COLOR 3 DRAW disk WITH SCALE(50)*SHIFT(30,0) CHARACTER INPUT s$ IF s$=CHR$(13) THEN CLEAR ! EXIT DO !enterが押されたら終了する END SELECT LOOP END 次のようにすると、すっきりした形になるかと思います。 INPUT文をひとつにまとめました。 1と2で描画、Enterで画面クリア、それ以外はループから抜け出るようにしました。 異常終了を排除できます。 参考にしていただければ。 SET WINDOW -200,200,-200,200 !DRAW grid(20,20) DO CHARACTER INPUT PROMPT "数字を入力してください。":s$ IF s$=CHR$(13) THEN CLEAR ! Enterキーで画面クリア ELSE WHEN EXCEPTION IN LET a=VAL(s$) USE EXIT DO ! 数字以外の入力は終了 END WHEN SELECT CASE a CASE 1 LET c=2 LET r=100 LET x=60 LET y=0 CASE 2 LET c=3 LET r=50 LET x=30 LET y=0 CASE ELSE EXIT DO ! 1と2以外は終了 END SELECT SET AREA COLOR c DRAW disk WITH SCALE(r)*SHIFT(x,y) END IF LOOP END |
└諏訪様、荒田様 樫木 秀樹 2006/07/14 00:21:04 ツリーへ
Re: INPUT文をループの中に入れてみてはどうでし... |
返事を書く |
樫木 秀樹 2006/07/14 00:21:04 | |
諏訪様、荒田様 ありがとうございました。 どちらの方法も、初心者の私には、勉強になりました。 今後ともよろしくお願いします。 |