- 追加された行はこの色です。
- 削除された行はこの色です。
- IF文 は削除されています。
- IF文 の差分を削除
#author("2018-02-09T17:25:51+09:00","","")
** IF文 [#f72d03c1]
#author("2023-01-31T10:37:14+09:00","default:maa","maa")
複雑な処理を行うためには、ある条件に応じて処理の選択を行わせる必要がある。このような場合、BASIC 言語では IF 文と GOTO 文を組み合わせて用いることになる。
|SIZE(18):BGCOLOR(yellow):CENTER:|c
|IF 条件式 THEN 条件合致時の行き先&br;または&br;IF 条件式 THEN 条件合致時の行き先 ELSE 条件外の行き先|
10 INPUT "0〜9の数字を入れてください。";A
20 IF A=7 THEN GOTO 50 '(“A=7”は代入ではなく等しければという条件)
30 PRINT A;"ですか…"
40 END '(プログラムを強制終了させている)
50 PRINT "それはラッキーですね^^"
処理内容が複雑でない場合は、GOTO 文を使わずに THEN の後ろに直接処理を書くこともできる。
10 INPUT "0〜9の数字を入れてください。";A
20 IF A=7 THEN PRINT "それはラッキーですね^^":END
30 PRINT A;"ですか…"
IF 文の条件式には以下のようなものがある。
|CENTER:SIZE(18):BGCOLOR(yellow):|SIZE(18):BGCOLOR(yellow):|c
|A=B|AとBが等しければ|
|A>B|Aの方が大きければ|
|A>=B|AがB以上ならば|
|A<B|Aの方が小さければ|
|A<=B|AがB以下ならば|
|A<>B|AとBが等しくなければ|
:[課題1]|複数個の数値を入力し、その数値の合計を出力するプログラムを作成せよ。&br;
ヒント:INPUT 文で数値を変数 A 入力してもらい、そのたびに合計を計算して合計を記憶させておく変数 S に保存する。GOTO 文を使って処理を繰り返すことになるが、IF 文を使って 0(ゼロ)が入力された時点で終了させるようにしよう。(下の図はプログラムの流れを示すフローチャート)
#ref(flowchart.png,center,nolink)
:[課題2]|課題 1 を拡張して、入力した数値の平均を出力するプログラムを作成せよ。&br;
ヒント:新たにひとつ変数を用意して、入力回数(何回ループしたか)を数える必要がある。入力終了合図の最後の”ゼロ”は回数に含めないように気をつけよう。
次のプログラムは、コンピュータがランダムに発生する 0〜9 の数字を当てるプログラムである。
10 A=INT(RND(1)*10) '(0〜9の乱数を変数Aに代入)
20 INPUT "0〜9の数字を入力してください。",X
30 IF A>X THEN PRINT "もっと大きいです。":GOTO 20
40 IF A<X THEN PRINT "もっと小さいです。":GOTO 20
50 PRINT "正解です。"
次のプログラムは、IF〜THEN〜ELSE を使って上記のものを書き直したものである。下線部を補完し、プログラムを完成させよ。
10 A=INT(RND(1)*10)
20 INPUT "0〜9の数字を入力してください。",X
30 IF ___ THEN PRINT "もっと大きいです。" ELSE IF ___ THEN PRINT "もっと小さいです。" ELSE PRINT "正解です。":___
40 GOTO 20
次のプログラムでは、発生する乱数を 0〜99 まで拡大した。このままでは当たる確率が低く難しいので、正解の値 ±10 を入力すると”おしい!”と表示するように改造した。その結果、上記のプログラムからアルゴリズム(プログラムの論理的手順)を若干変更している。下線部の条件式を補完し、プログラムを完成させよ。
10 A=INT(RND(1)*100) '(0〜99の乱数を変数Aに代入)
20 INPUT "0〜99の数字を入力してください。",X
30 IF ___ THEN PRINT "正解です。":END
40 ZETTAICHI=ABS(A-X) '(変数Aと変数Xの差の絶対値)
50 IF ZETTAICHI ____ THEN PRINT "おしい!もう少し"; ELSE PRINT "もっと";
60 IF ___ THEN PRINT "大きいです。" ELSE PRINT "小さいです。"
70 GOTO 20
RIGHT:[[[BASIC言語の基本命令文と文法に戻る]>コンピュータ実習II#md798e85]]