開設1周年のお礼

e-Gadget



Casio fx-5800P で粗製乱造していたプログラムをチョット真面目に見直してみよう、と思い立ったのがきっかけで、Casio Basic の素晴らしさに気付き、それを伝えたという気持ちから、当ブログを始めたのが1年前のことでした。

走りながら考えて、実際にやったこと、考えたことのみを記事にしてきました。

元来そそっかしいので、以前書いた記事に誤変換や妙な記述、間違いもあり、かなり時間が経ってから修正や追記をしています、それもかなりの頻度で...

こっそり直すこともありますが、ひどい間違いは、いつ何を修正したか分かるようにしているつもりです。

いずれにしても、fx-5800Pのみを対象とした、究極のワンテーマ・ブログが、ここまで来られたのは、コメントで応援してくださる方々だけでなく、ブログを読んでくださるサイレントマジョリティーの皆様のお陰です。

おかげさまで、アクセスカウンターが9,000を超えました。

記事のネタは、まだまだ有るのですが、それを書く時間を取れない状況が続いています。ネタの提供方法を工夫してみたいとも思います。

これからも、長いお付き合いをお願い致します。




keywords: fx-5800PCasioBasicプログラム関数電卓

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

Casio Basic: If~Then~IfEnd

Casio Basic
コマンドリファレンス

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≠0If X>Y  などのように、式が「真」か? あるいは「偽」であるか?で判定されます。

論理演算式を用いる場合
Ife X And Y や If X Or Y などのように、結果が「真」か? あるいは「偽」か? で判定されます。

計算式・関数・戻り値を変えるコマンドを用いる場合
If A-BIf sin(D)If Getkey などのように、これらの結果が、0でない(「真」)か? 0である(「偽」)か? で判定されます。

変数を用いる場合
If C などのように、変数が、0でない(「真」)か? 0である(「偽」)か? で判定されます。

数値を用いる場合
If 1 などとすると、常に真になるので、必ず Then 以降が実行されます。文法上は問題ありませんが、このような使い方は実用上意味が有りません。 




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: fx-5800PCasioBasicIf文プログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR