どうも潤奈です( ・Д・)
今回はIF関数の書き方についてまとめて行きたいと思います。
以下からはif文と呼んで説明させて頂きます。
だれか知っている方がいらっしゃったらIF関数とif文の言葉の違いを教えて下さい( ・Д・)w
では行ってみましょう!
if文とは
if文とは、記述した条件に対して真(true)か偽(false)かの2択によって次の処理を変える事が出来ます。
コードは以下のように記述します。
1 2 3 |
if(条件式){ //条件式がtrueの場合に実行 } |
条件式が真(true)であれば、{}内の処理を行い、偽(false)であれば{}内の処理を飛ばします。
ちなみに条件式の結果は真の時は1で、偽の時は0になります。
よって以下のような記述パターンが考えられます。
1 2 3 4 5 |
例1)条件式を使った方法 int A=10; if(A==10){ Print("Aは10です"); } |
1 2 3 4 5 |
例2)0か1を使った条件式 int A=1; if(A){ Print("Aは1です"); } |
1 2 3 4 5 |
例3)bool型を使った条件式 bool A=true; if(A){ Print("Aはtrueです"); } |
例1の条件式のように比較演算子(==)をよく使用しますので他にも紹介します。
演算子 | 例 | 説明 |
> | A>B | AがBより大きい場合 |
< | A<B | AがBより小さい場合 |
>= | A>=B | AがB以上の場合 |
<= | A<=B | AがB以下の場合 |
== | A==B | AがBと等しい場合 |
!= | A!=B | AがBと等しくない場合 |
他にも論理演算子を組み合わせる事で条件式の幅が広がりますので紹介します。
演算子 | 例 | 説明 |
! | !A | Aではない |
&& | A&&B | AかつB |
|| | A||B | AまたはB |
使用例は以下のような記述方法になります。
1 2 3 4 |
int A=1,B=2; if(A==1 && B==2){ Print("Aは1かつBは2です"); } |
このように2つの条件を満たした場合に{}内の処理に進めるようにしたり、条件を組み合わせる事が出来ます。
if else文とは
if else文は、if文の条件で偽(false)の場合に行う処理を記述します。
コードは以下のように記述します。
1 2 3 4 5 |
if(条件式){ //条件式がtrueの場合に実行 }else{ //条件式がfalseの場合に実行 } |
条件式が真(true)であれば、ifの後の{}内の処理を行い、偽(false)であればelseの後の{}内の処理を行います。
else if文とは
if文からのelse if文で複数の条件を設置する事が出来ます。
コードは以下のように記述します。
1 2 3 4 5 6 7 |
if(条件式1){ //条件式1がtrueの場合に実行 }else if(条件式2){ //条件式2がtrueの場合に実行 }else{ //条件式1も条件式2もfalseの場合に実行 } |
このように条件式を複数設置する事が出来ます。
{}を省略パターン
{}は省略する事も可能です。
例1を省略してみると以下のようになります。
1 2 3 |
例1-2) int A=10; if(A==10)Print("Aは10です"); |
このように{}を省略してもif文の次までは対象の範囲内になりますので、以下のように改行しても有効です。
しかし、2つめの処理は範囲外です。
1 2 3 |
if(A==10) Print("条件がtrueの場合表示"); Print("if文条件式に関係なく表示"); |
1つ目のPrint関数はif文がtrueの場合は表示されますが、2つ目のPrint関数はif文の結果に影響されないので表示されます。
else if文も同様に{}を以下のように省略できます。
1 2 3 4 5 6 |
if(A==0) Print("Aが0である"); else if(A==1) Print("Aが1である"); else Print("Aが0でも1でもない"); |
ただ個人的には読みづらくて好きではないのでこのようには書きません( ・Д・)
処理的に非効率な記述パターン
処理動作に問題はありませんが、効率的ではない記述パターンがあります。
これは私も実際に書いていた書き方ですw
1 2 3 4 5 6 |
bool A=true; if(A==true){ Print("Aはtrueである"); }else{ Print("Aはfalseである"); } |
いかがでしょうか。何が非効率か分かりますか?
実はこの場合だと1度で済む確認作業を2回行っている事になっています。
どういう事かと言うと、まずif文の()内で比較演算子を使ってAがtrueであるかを確認しています。
そしてその結果をtrueかfalseかを判断して、trueの場合は{}内の処理に進みます。
気付きましたか?
そうです。trueであるかを2回確認しています。
よって以下の記述の方がシンプルなのではないかと思います。
1 2 3 4 5 6 |
bool A=true; if(A){ Print("Aはtrueである"); }else{ Print("Aはfalseである"); } |
まとめ
最後の非効率な書き方については、それを直したからといってどれぐらい処理速度が速くなるのかは分かりませんが、出来るだけシンプルにスムーズなプログラムを書いて行きたいですよね。
コメント