C のブール値
C の bool は、true または false の 2 つの値のいずれかを保持できる基本的なデータ型です。これは論理値を表すために使用され、if-else ステートメント、while ループ、for ループなどの意思決定ステートメントの実行フローを制御するためにプログラミングで一般的に使用されます。この記事では、C で bool データ型を使用する方法を説明します。
C のブール値
C では、bool データ型は組み込みデータ型ではありません。ただし、C 言語の C99 標準は bool 変数をサポートしています。ブール値は、値を true-false、0-1、または yes-no として保存できます。以下に示すさまざまな方法を使用して、C で実装できます。
- ヘッダー ファイル stdbool.h の使用
- 列挙型の使用
- 定義を使用してブール値を宣言する
1. ヘッダー ファイル stdbool.h の使用
C で bool を使用するには、ヘッダー ファイル stdbool.h をインクルードする必要があります。 stdbool.h ライブラリをインクルードすると、stdio.h ライブラリではブール値が使用できないため、データ型を使用できるようになります。
以下は C でのブール値の実装です。
C
// C Program to implement> // Boolean data type> #include> // Main Function> int> main()> {> > // Boolean data types declared> > bool> a => true> ;> > bool> b => false> ;> > printf> (> 'True : %d
'> , a);> > printf> (> 'False : %d'> , b);> > return> 0;> }> |
出力
True : 1 False : 0
上記のプログラムを .c ファイルとして保存すると、コンパイルできません。ただし、.cpp ファイルとして保存すると、正常に動作します。
2. 列挙型の使用
あるいは、列挙型を使用して C で bool を実装することもできます。ここでは、ライブラリをインポートするのではなく、データ型として bool を使用するように列挙型を宣言します。
以下は列挙型アプローチの使用例です。
C
#include> typedef> enum> {> false> ,> true> }> bool> ;> int> main()> {> > bool> a => true> ;> > bool> b => false> ;> > printf> (> 'True : %d
'> , a);> > printf> (> 'False : %d'> , b);> > return> 0;> }> |
出力
True : 1 False : 0
3. Define を使用したブール値の宣言
この場合、false 値には整数値 0 が割り当てられ、true 値には整数値 1 が割り当てられます。0 (false) または 1 (true) の値を持つ int または char を使用することもできます。 C で bool データ型を表現します。
上記のアプローチの実装を以下に示します。
C
#define bool int> #define false 0> #define true 1> int> main()> {> > bool> a => true> ;> > bool> b => false> ;> > printf> (> 'True : %d
'> , a);> > printf> (> 'False : %d'> , b);> > return> 0;> }> |
出力
True : 1 False : 0
条件文での Bool の使用
bool データ型は、if-else ステートメントなどの条件ステートメントでよく使用されます。 a が b より大きいか、そうでなければ b が a より大きいかなどの条件は、ブール値を使用して実装できます。 == 、> 、 < 、 != などの条件演算子を使用したこれらの条件は、ブール値を返します。
以下は条件文の実装です。
C
// C Program to implement> // conditional statements> #include> #include> // Main Function> int> main()> {> > // Integers declared> > int> a = 3;> > int> b = 4;> > // Conditional Statements> > if> (a>b) {>> > printf> (> 'a is greater
'> );> > }> > else> {> > printf> (> 'a is smaller
'> );> > }> > printf> (> '%d is the result of a>b'>> , a>b);>> |