本記事はC言語の論理演算子を学生エンジニアが初心者の方へ向けて優しく解説しています。C言語は非常に多くのエンジニアが利用する、手を付けやすい言語です。C言語での論理演算子を一緒に学習しましょう!
論理演算子
論理演算式はif文などの条件式を、より具体的に示すことができます。
例えば論理演算式を使えば、
『「aとbが等しい」または「c>dである」』こういった複数の条件式を組み合わせて書くことができます。
具体的に、数学で使われる「かつ」や「または」と同じ意味の記号です。
演算子 | 数学的意味 | 意味(条件が真となる場合) |
&& | かつ (and) | 左辺と右辺がともに真 |
|| | または (or) | 左辺か右辺のどちらかが真 |
! | 補集合 (not) | 右辺が偽 |
これらはC言語で下のように書きます。
if(a&&b)
if(a||b)
if(!a)
&&(論理積)
&&は「かつ」や「論理積」といわれます。
左辺と右辺の両方が真であることを表す論理演算子です。
サンプルコードを紹介します。
#include <stdio.h>
int main(void){
int a;
printf("3より大きく10以下の数字を入力してください。");
scanf("%d",&a);
if(a>3 && a<=10){
printf("正解!\n");
}else{
printf("不正解...\n");
}
return 0;
}
【入力例】
7
【実行例】
正解!
このサンプルコードでは、
「if(a>3 && a<=10)」によって 「a>3」と「a<=10」の両方が真であれば
if文のブロックを処理するという条件式を組み合わせています。
||(論理和)
||は英語では「or」。日本語では「または」や「論理和」といわれます。
左辺と右辺のどちらかが真であることをあらわす論理演算子です。
サンプルコードは&&とほとんどど変わらないので省略します。
!(否定)
!は英語では「not」。日本語では「補集合」や「否定」といわれます。
右辺が偽であることをあらわす論理演算子です。
サンプルコードを紹介します。
#include <stdio.h>
int main(void){
int a;
printf("3以外の数字を入力してください。");
scanf("%d",&a);
if(!(a==3)){
printf("正解!\n");
}else{
printf("不正解...\n");
}
return 0;
}
【入力例】
7
【実行例】
不正解...
ここでは、
「if(!(a==3))」という条件式から、
『「3がaに等しい」という条件式が偽のときにif文のブロックを処理』と命令しています。
「!」の論理演算子はゆっくり考えなければ難しい面もあるので、悩んだら落ち着いて条件式を埋めてみてください。
以上でC言語、論理演算子の解説を終わります。
最後まで読んでいただきありがとうございました\(^o^)/
C言語の超オススメ本
この1冊でC言語のほとんどが完結する、間違いのない本ですよ\(^o^)/
つまづいたときに逆引きするC言語の辞書代わりにもなります!
PCを操作する上で、トラックボールマウスも非常におすすめです!
僕も感動したこのマウスを、騙されたと思って使ってみてください!(^^)