初めてのObjective-Cアプリ開発(iPhone編)⑩計算機を作る その3(条件分岐文で処理を分ける)
1、条件分岐文を学ぶ
前回の最後に条件分岐文というものを紹介しました。
「〜〜ならば、ーーという処理をする。」といったように、場合分けをして
処理を分けることができます。主な条件分岐文を紹介していきます。
①if 文
if (〜〜){ ーー }
意味:〜〜の条件に当てはまるとき、ーーの処理を行う
ifの後ろの( )に条件を記述し、{ }で囲まれた中にその条件の時に行う処理を記述します。
②if〜else〜文
if(〜〜){ 1ーー }else{ 2ーー }
意味:〜〜の条件に当てはまるとき、1ーーの処理を行い、それ以外は2ーーの処理を行う
if文の後ろにelse文を繋げ、それ以外の場合の処理を記述することができます。
③if〜else if〜文
if(1〜〜){ 1ーー }else if(2〜〜){ 2ーー }
意味:1〜〜のとき、1ーーの処理を行い、それ以外で2〜〜の条件に当てはまる時は2ーーの処理を行う。
条件を複数記述し場合分けすることができます。else if文の後ろにさらにelse if文を繋げる
こともできます。もちろん②のelse文を繋げることもできます。
④switch文
switch(〜〜){ case ①: 1ーー; break; case ②: 2ーー; break; ・・・ default: nーー; break; }
意味:〜〜が①のとき、1ーーの処理を行い、〜〜が②のとき、2ーーの処理を行い、・・・
どれにも当てはまらなければnーーの処理を行う。
〜〜の条件には変数しか入れることができませんので気をつけてください。
case文はいくつでも記述することができます。
またbreak;と書くことによって、switch文の処理から(つまり、{ }の中から)抜けます。
このswitch文は上から順番に条件に当てはまるかのチェックを行っていき、条件が当てはまれば
そのーーの処理を行います。
2、実際に条件分岐文を書いてみる
それでは実際に、「+」ボタンが押されていたときと「-」ボタンが押されていた時の
処理を、条件分岐文を使って書いてみましょう。
新しく変数を用意してあげて、「+」が押された時には変数に1が、
「-」が押された時には変数に2が入るようにして、その数値を元に場合分けしてみましょう。
前回と同じように新しくインスタンス変数をflgという名で宣言し、初期値を0にします。
次に、「+」ボタンが押された時にflgに1を、「-」ボタンが押された時にflgに2を代入する処理を
記述します。
これで「+」と「-」ボタンが押された時に変数flgにそれぞれ1と2が代入されるはずです。
本当にその値が入っているかどうか確認するために、NSLog関数でログを取って確認してみましょう。
さらに以下の記述を追加してください。
では実際にflgに数字が格納されているかシミュレータで適当にボタンを押してみて
下のデバッグエリアを確認しましょう。
ちゃんと数字が格納されています。
では、この数字を使って条件分岐文を記述します。
「=」ボタンを押した時に場合分けをしたいので、
– (IBAction)equal:(id)sender{ }の中に記述していきます。
if文とswitch文のどちらでも結果は同じになりますので、好きな方で記述してください。
①if文で記述する場合
flgが1と2の時で場合分けをしますので、else if文を使います。
- (IBAction)equal:(id)sender { if (flg == 1) { sum = num + sum; self.lb.text = [NSString stringWithFormat:@"%d",sum; }else if (flg == 2){ sum = num - sum; self.lb.text = [NSString stringWithFormat:@"%d",sum]; } }
2行目や5行目の部分で、「変数flgが1と等しい」というように記述したい場合は「==」で記述します。
このような演算子を「条件演算子」と呼びます。条件演算子については後ほど説明します。
②switch文で記述する場合
- (IBAction)equal:(id)sender { switch (flg) { case 1: sum = num + sum; self.lb.text = [NSString stringWithFormat:@"%d",sum; break; case 2: sum = num - sum; self.lb.text = [NSString stringWithFormat: break; default: break; }
flgに格納されている数値によって場合分けをします。忘れずにbreak;を付けてください。
これで「+」ボタンと「-」ボタンで場合分けをすることができました。
同様にして「×ボタンと「÷」ボタンも作成してみてください。
下の画像はif文で記述した場合のものです。
※全ての変数をint型で宣言しているので、割り算を行うと小数点以下が切り捨てられて
整数表示になってしまいますが、今はこのままにしておいて後々直していきます。
3、条件演算子
if文の時に「==」という条件演算子が出てきました。他にもたくさんの演算子がありますので、
代表的なものを以下にまとめます。
型 | 内容 |
---|---|
== | 左辺と右辺が等しい |
!= | 左辺と右辺が等しくない |
> | 左辺が右辺より大きい |
>= | 左辺が右辺以上 |
< | 左辺が右辺より小さい |
<= | 左辺が右辺以下 |
&& | 左辺かつ右辺 |
|| | 左辺または右辺 |
条件文を記述する際などにこの条件演算子をよく用いますので、これらの代表的なものは
覚えてしまいましょう。
今回はこれで終わりたいと思います。
次回は5+6-3=といったように、演算ボタンを連続して押していく場合の処理を実装して
いきたいと思います。
TechProjin 開発系基礎講座 連載リンク
基礎からPHPWEBアプリ解発を学ぶなら・・
PHP基礎 連載
AIなどで注目急上昇!これから学ぶならPython!!
独学で学ぶ-pythonプログラミング 連載
汎用性◎ 定番プログラミング言語JAVA
Java基礎講座 連載