基本的な記述方法まとめ
条件分岐処理if文の基本的な記述方法は以下の通りです。
if(n>0){ printf("nは0より大きい"); }else if(n==0){ printf("nは0です"); }else{ printf("nは0より小さい"); }
if(n==0)の箇所は、if(n=0)と書いてしまうとnに0が代入される代入式と認識されてしまうので、if(n==0)と書く必要があります。
関係演算子
if(a<b){ 真 }else{ 偽 } | aがbの値より小さければ真 |
if(a<=b) | aがbの値以下であれば真 |
等価演算子
if(a==b) | aがbの値と等しければ真 |
if(a!=b) | aがbの値と等しくないならば真 |
論理演算子
if(a&&b) | aとbがどちらも成り立っていれば真 (論理積) |
if(a||b) | aとbが一方でも成り立っていれば真 (論理和) |
if(!n) | nの値でないならば真 |
if(x<y<z) のように書くことはc言語では禁止です。 この場合では、if(x<y&&y<z)と書きます。
条件演算子(三項演算子)
if文の代わりに、a式?b式:c式という便利な書き方があります。
これは、
if(a式){
b式;
}else{
c式;
}
と同意です。
a式が真ならばb式を実行
a式が偽ならばc式を実行
真偽の判定方法
上記のような真偽の判定方法は、0ならば偽、0以外の値を真とすることで真偽を判定しています。
少しコードを見てみます。
if(n){
printf("nは0ではありません");
}else{
printf("nは0です");
}
と書けます。if(n)では、nが0ならば偽、0以外ならば真と判定しています。
少し理解しづらいかもしれないので、実際に出力してみると分かりやすいです。
int a=5,b=10; printf("%d\n",a<b); //a<bは真 printf("%d",a>b); //偽
出力
1
0
このように、if(n)ではなく、if(a<b)のような場合でも、0か0以外かで真偽判定していることが分かると思います。