Casio Basic: If~Then~IfEnd
Casio Basic
コマンドリファレンス
Casio fx-5800P、fx-9860GII、fx-CG20、fx-CG50 で確認をとっています。Casio fx-FD10 Pro では互換性はあると考えられますが、実機で確認していないので「可能性」としてご覧ください。
fx-5800P / fx-9860GII / fx-CG20 / fx-CG50
If 文: If ~ Then (~ Else) ~ IfEnd
◆ 概 要:
[判定条件] が「真」の場合と、「真」でない場合で、処理を変更する。
◆書 式1: (単一条件分岐)
If [判定条件]
Then [処理]
IfEnd
◆ 書 式2: (単一条件分岐)
If [判定条件]
Then
[処理2]
Else
[処理1]
IfEnd
◆ 書 式3:(複数条件分岐)
If [判定条件4]:Then
[処理4]
Else If [判定条件3]:Then
[処理3]
Else If [判定条件2]:Then
[処理2]
Else If [判定条件1]:Then
[処理1]
IfEnd
IfEnd
IfEnd
IfEnd
対応する If~Else~IfEnd を色分けしてみます。
If E=4:Then
[処理4]
Else If E=3:Then
[処理3]
Else If E=2:Then
[処理2]
Else If E=1:Then
[処理1]
IfEnd
IfEnd
IfEnd
IfEnd
このように、Else の中に 新たな If~Else が入った入れ子構造になっています。
この記法を使うと、入れ子構造を意識せずに、単に If の数と同数の IfEnd を最後に書けば良いわけです。
注意!
Casio Basicでは、If の終わりに IfEnd を書かなくてもエラーの表示がありませんが、意図しない動作をしますので、要注意です。
注意!
fx-5800p Casio basicでは、上の色分けで示したようにコマンドの前にスペースを入れるとエラーとなります。「◆書式」の説明に書いてあるようにスペースを入れずに入力してください。
⇒ 楽屋裏 - Else If
◆ 書式の補足: 区切りコード:を利用した書式例
If [条件]:Then [処理1]
Else [処理2]:IfEnd
◆ Else は省略可能
・Else省略時の書式1:
If [条件]
Then [処理]
IfEnd
・Else省略時の書式2:
If [条件]
Then
[複数行の処理]
IfEnd
・Else省略時で区切りコード:を利用した書式例
If [条件]:Then [処理]:IfEnd
複数分岐処理
上記の 書式2 のように、Else If と記述すると、複数条件分岐ができます。
If 文を入れ子構造にするのですが、Else If と並べて書けるので、その可読性が向上します。
この記法は、If文の入れ子構造なので、If の数と同じ数の IfEnd を忘れずに書く必要があります。
これが面倒だと言う場合は、Goto / Lbl を応用した複数分岐処理の構文を参考にしてください → こちら
プログラム事例
3つに場合分けするプログラム事例として、任意の整数を入力させ、3で割った余りが、0,1,2 のいずれかに分類して、その結果を表示するプログラムは以下のようになります。
"A"?→A
A-3Int(A÷3)→M
If M=0
Then Locate 1,1,"REMAINDER 0"
Else If M=1
Then Locate 1,1,"REMAINDER 1"
Else If M=2
Then Locate 1,1,"REMAINDER 2"
IfEnd
IfEnd
IfEnd
ちなみに、A-3Int(A÷3) は、Aを3で割った時の余りを求める式です。"REMAINDER 1" は「余り1」の英語です。
青色で示した If 文の中に、赤色で示した If 文 が含まれ、赤色で示した If 文の中に紫色で示した If 文が含まれています。最後の IfEndは3つ必要ですが、忘れがちなので要注意です。[2014/10/06 今更ながら大きな間違いを見つけたので修正]
或いは、Else を使わず、If ~ Then ~ IfEnd を素直に3つ並べる方法もあります。
"A"?→A
A-3Int(A÷3)→M
If M=0
Then Locate 1,1,"REMAINDER 0"
IfEnd
If M=1
Then Locate 1,1,"REMAINDER 1"
IfEnd
If M=2
Then Locate 1,1,"REMAINDER 2"
IfEnd
Else If を利用した前者の記法の方が、処理が速くなります。
If 文の判定条件について
If 文の判定条件は、それが 「真 (True)」 であれば Then 以降を実行し、「偽 (False)」 であれば Else 以降を実行するか、Elseが無ければ IfEndまでジャンプします。
If 文の判定では、関係演算式、論理演算式、計算式、関数、変数、戻り値を返すコマンド、数値 を指定できます。
関係演算式を用いる場合
If K≠0 や If X>Y などのように、式が「真」か? あるいは「偽」であるか?で判定されます。
論理演算式を用いる場合
Ife X And Y や If X Or Y などのように、結果が「真」か? あるいは「偽」か? で判定されます。
計算式・関数・戻り値を変えるコマンドを用いる場合
If A-B、If sin(D)、If Getkey などのように、これらの結果が、0でない(「真」)か? 0である(「偽」)か? で判定されます。
変数を用いる場合
If C などのように、変数が、0でない(「真」)か? 0である(「偽」)か? で判定されます。
数値を用いる場合
If 1 などとすると、常に真になるので、必ず Then 以降が実行されます。文法上は問題ありませんが、このような使い方は実用上意味が有りません。
応援クリックをお願いします。励みになるので...
keywords: fx-5800P、CasioBasic、If文、プログラミング入門、プログラム関数電卓
リンク集 | ブログ内マップ
コマンドリファレンス
Casio fx-5800P、fx-9860GII、fx-CG20、fx-CG50 で確認をとっています。Casio fx-FD10 Pro では互換性はあると考えられますが、実機で確認していないので「可能性」としてご覧ください。
最終更新: 2014/10/06 [間違い修正]
fx-5800P / fx-9860GII / fx-CG20 / fx-CG50
If 文: If ~ Then (~ Else) ~ IfEnd
◆ 概 要:
[判定条件] が「真」の場合と、「真」でない場合で、処理を変更する。
◆書 式1: (単一条件分岐)
If [判定条件]
Then [処理]
IfEnd
- 判定条件が「真」の場合に [処理] を実行する。
- [処理]は、Then の後に記述するか、Then の後に改行してから記述しても、どちらでも良い。
◆ 書 式2: (単一条件分岐)
If [判定条件]
Then
[処理2]
Else
[処理1]
IfEnd
- 判定条件が「真」の場合は [処理2] を実行し、「真」でなければ [処理1] を実行する。
◆ 書 式3:(複数条件分岐)
If [判定条件4]:Then
[処理4]
Else If [判定条件3]:Then
[処理3]
Else If [判定条件2]:Then
[処理2]
Else If [判定条件1]:Then
[処理1]
IfEnd
IfEnd
IfEnd
IfEnd
- 判定条件N が「真」なら [処理N] を実行する (N = 1, 2, 3, 4)。
- If の数と同じ数の IfEnd を記述しなければなりません。
対応する If~Else~IfEnd を色分けしてみます。
If E=4:Then
[処理4]
Else If E=3:Then
[処理3]
Else If E=2:Then
[処理2]
Else If E=1:Then
[処理1]
IfEnd
IfEnd
IfEnd
IfEnd
このように、Else の中に 新たな If~Else が入った入れ子構造になっています。
この記法を使うと、入れ子構造を意識せずに、単に If の数と同数の IfEnd を最後に書けば良いわけです。
注意!
Casio Basicでは、If の終わりに IfEnd を書かなくてもエラーの表示がありませんが、意図しない動作をしますので、要注意です。
注意!
fx-5800p Casio basicでは、上の色分けで示したようにコマンドの前にスペースを入れるとエラーとなります。「◆書式」の説明に書いてあるようにスペースを入れずに入力してください。
⇒ 楽屋裏 - Else If
◆ 書式の補足: 区切りコード:を利用した書式例
If [条件]:Then [処理1]
Else [処理2]:IfEnd
◆ Else は省略可能
・Else省略時の書式1:
If [条件]
Then [処理]
IfEnd
・Else省略時の書式2:
If [条件]
Then
[複数行の処理]
IfEnd
・Else省略時で区切りコード:を利用した書式例
If [条件]:Then [処理]:IfEnd
複数分岐処理
上記の 書式2 のように、Else If と記述すると、複数条件分岐ができます。
If 文を入れ子構造にするのですが、Else If と並べて書けるので、その可読性が向上します。
この記法は、If文の入れ子構造なので、If の数と同じ数の IfEnd を忘れずに書く必要があります。
これが面倒だと言う場合は、Goto / Lbl を応用した複数分岐処理の構文を参考にしてください → こちら
プログラム事例
3つに場合分けするプログラム事例として、任意の整数を入力させ、3で割った余りが、0,1,2 のいずれかに分類して、その結果を表示するプログラムは以下のようになります。
"A"?→A
A-3Int(A÷3)→M
If M=0
Then Locate 1,1,"REMAINDER 0"
Else If M=1
Then Locate 1,1,"REMAINDER 1"
Else If M=2
Then Locate 1,1,"REMAINDER 2"
IfEnd
IfEnd
IfEnd
ちなみに、A-3Int(A÷3) は、Aを3で割った時の余りを求める式です。"REMAINDER 1" は「余り1」の英語です。
青色で示した If 文の中に、赤色で示した If 文 が含まれ、赤色で示した If 文の中に紫色で示した If 文が含まれています。最後の IfEndは3つ必要ですが、忘れがちなので要注意です。[2014/10/06 今更ながら大きな間違いを見つけたので修正]
或いは、Else を使わず、If ~ Then ~ IfEnd を素直に3つ並べる方法もあります。
"A"?→A
A-3Int(A÷3)→M
If M=0
Then Locate 1,1,"REMAINDER 0"
IfEnd
If M=1
Then Locate 1,1,"REMAINDER 1"
IfEnd
If M=2
Then Locate 1,1,"REMAINDER 2"
IfEnd
Else If を利用した前者の記法の方が、処理が速くなります。
If 文の判定条件について
If 文の判定条件は、それが 「真 (True)」 であれば Then 以降を実行し、「偽 (False)」 であれば Else 以降を実行するか、Elseが無ければ IfEndまでジャンプします。
If 文の判定では、関係演算式、論理演算式、計算式、関数、変数、戻り値を返すコマンド、数値 を指定できます。
関係演算式を用いる場合
If K≠0 や If X>Y などのように、式が「真」か? あるいは「偽」であるか?で判定されます。
論理演算式を用いる場合
Ife X And Y や If X Or Y などのように、結果が「真」か? あるいは「偽」か? で判定されます。
計算式・関数・戻り値を変えるコマンドを用いる場合
If A-B、If sin(D)、If Getkey などのように、これらの結果が、0でない(「真」)か? 0である(「偽」)か? で判定されます。
変数を用いる場合
If C などのように、変数が、0でない(「真」)か? 0である(「偽」)か? で判定されます。
数値を用いる場合
If 1 などとすると、常に真になるので、必ず Then 以降が実行されます。文法上は問題ありませんが、このような使い方は実用上意味が有りません。
応援クリックをお願いします。励みになるので...
keywords: fx-5800P、CasioBasic、If文、プログラミング入門、プログラム関数電卓
リンク集 | ブログ内マップ
- 関連記事
-
- Casio Basic: Getkey 2015/01/12
- Casio Basic: Int / Frac 2015/01/09
- Casio Basic: If~Then~IfEnd 2014/10/07
- Casio Basic: While~WhileEnd 2014/06/01
- Casio Basic: Or/And/Not 2014/03/15