C言語条件文マスター:if、else、ネストの実践ガイド
C言語条件文マスター:if、else、ネストの実践ガイド
この包括的なガイドでは、C言語のif、else、ネストした条件文の基礎を、明確な例とベストプラクティスのヒントとともに解説します。
動画: C言語if-else文
以下の簡潔なチュートリアル動画でこれらの概念を実際に確認してください。
C言語if文
C言語のif文は以下の構文に従います:
if (テスト式) {
// 条件が真のときに実行するコード
}
if文の仕組み
括弧内のテスト式が評価されます。結果が非ゼロ(真)なら中括弧内のコードブロックが実行され、ゼロ(偽)ならスキップされます。
- 真:本体を実行
- 偽:本体をスキップ

C言語の関係演算子と論理演算子における真偽値についてはWikipediaやGeeksforGeeksを参照してください。
例1: シンプルなif文
// 負の数の場合にその数を表示するプログラム
#include <stdio.h>
int main() {
int number;
printf("整数を入力: ");
scanf("%d", &number);
// numberが0未満なら真
if (number < 0) {
printf("You entered %d.\n", number);
}
printf("The if statement is easy.");
return 0;
}
出力1
整数を入力: -2 You entered -2. The if statement is easy.
ユーザーが-2を入力すると、式number < 0が真と評価されるためメッセージが表示されます。
出力2
整数を入力: 5 The if statement is easy.
5`の場合、式は偽と評価され、ブロック内のprintfがスキップされます。
C言語if…else文
elseブロックを追加すると、偽の場合の代替コードを指定できます。構文:
if (テスト式) {
// 真のときのコード
} else {
// 偽のときのコード
}
if…else文の仕組み
• テストが真:ifブロックを実行しelseをスキップ
• テストが偽:elseブロックを実行しifをスキップ

例2: 奇数か偶数かを判定
// 整数が奇数か偶数かを判定
#include <stdio.h>
int main() {
int number;
printf("整数を入力: ");
scanf("%d", &number);
// 余りが0なら真
if (number % 2 == 0) {
printf("%d is an even integer.", number);
} else {
printf("%d is an odd integer.", number);
}
return 0;
}
出力
整数を入力: 7 7 is an odd integer.
ここでは剰余演算子で偶奇を判定し、elseブロックで奇数の場合を処理しています。
C言語if…elseラダー
複数の条件を順次評価する必要がある場合、if…else if…elseラダーが最適です。
ラダーの構文
if (条件1) {
// 文
} else if (条件2) {
// 文
} else if (条件3) {
// 文
} else {
// 文
}
例3: 2つの整数の関係
// 2つの整数を比較するプログラム
#include <stdio.h>
int main() {
int number1, number2;
printf("2つの整数を入力: ");
scanf("%d %d", &number1, &number2);
if (number1 == number2) {
printf("Result: %d = %d", number1, number2);
} else if (number1 > number2) {
printf("Result: %d > %d", number1, number2);
} else {
printf("Result: %d < %d", number1, number2);
}
return 0;
}
出力
2つの整数を入力: 12 23 Result: 12 < 23
ネストしたif…else
if…elseを別の内部に埋め込むことで、ラダーを使わずにきめ細かな分岐が可能です。
例4: ネストした比較
#include <stdio.h>
int main() {
int number1, number2;
printf("2つの整数を入力: ");
scanf("%d %d", &number1, &number2);
if (number1 >= number2) {
if (number1 == number2) {
printf("Result: %d = %d", number1, number2);
} else {
printf("Result: %d > %d", number1, number2);
}
} else {
printf("Result: %d < %d", number1, number2);
}
return 0;
}
if…elseブロックに文が1つだけの場合、中括弧{}は省略可能ですが、可読性とエラー防止のために使用することを推奨します。
例:
if (a > b) printf("Hello");
printf("Hi");
C言語
- C# 条件分岐をマスターする:if、if-else、if-else if、ネストした if 文
- C# switch 文をマスターする:構文、例、ベストプラクティス
- C# break 文:使い方とタイミングを徹底解説
- C# continue 文をマスターする:ループ反復を効果的にスキップする方法
- C++条件分岐完全ガイド:if、if-else、ネストされたif-elseの仕組みと実例
- C++ break文完全ガイド:ループ脱出の仕組みと実例
- C++ continue文完全ガイド:ループ制御の実例とベストプラクティス
- C++ switch-case文完全ガイド:構文、フロー、実践的な計算機例
- C言語goto文完全解説:構文、実用例、ベストプラクティス
- C言語の基本構文マスター:トークン、構造、セミコロン
- Python pass文完全マスター: 実践ガイド