Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のネストされたif-else文をわかりやすく解説!構文と実例付き

ネストされたif-else文とは?

「ネストされたif(入れ子のif)」とは、if文またはelse文の中に、さらに別のif文が含まれている構造のことを指します。つまり、ある条件分岐の処理ブロック内に、別の条件判断を組み込むことで、より複雑な条件判定を実現できるのです。

この仕組みを使うことで、「複数の条件が同時に成り立つかどうか」「段階的な条件チェック」などを、柔軟にプログラムへ組み込むことが可能になります。

基本構文

ネストされたif-else文の基本的な書き方は以下の通りです。

if (condition1){
    if (condition2)
        stmt1;
    else
        stmt2;
}
else{
    if (condition3)
        stmt3;
    else
        stmt4;
}

この構文では、まず外側の condition1 が評価され、その結果に応じて内側のif文が実行されます。各条件が真(true)か偽(false)かによって、4つの処理ステートメントのどれか1つが選ばれる仕組みです。

例1:3つの数値から最大値を求める

以下は、ネストされたif-else文を使って、入力された3つの数値の中から最大値を見つけるC言語プログラムです。

#include<stdio.h>
void main (){
    int a,b,c,d;
    printf("Enter the values of a,b,c: \n");
    scanf("%d,%d,%d",&a,&b,&c);
    if((a>b)&&(a>c)){
        if(a>c){
            printf("%d is the largest",a);
        } else {
            printf("%d is the largest",c);
        }
    } else {
        if(b>c){
            printf("%d is the largest",b);
        } else {
            printf("%d is the largest",c);
        }
    }
}

実行結果

Enter the values of a,b,c: 3,5,8
8 is the largest

この例では、まず「aがbより大きく、かつaがcより大きい」という外側の条件を判定し、さらに内側のif文で詳細な比較を行っています。このように条件を段階的に組み合わせることで、正確な最大値の判定が可能になります。

例2:数値が正・負・ゼロのいずれかを判定する

次に、入力された数値が正の数か負の数か(ゼロ含む)を判定するC言語プログラムの例を紹介します。

#include <stdio.h>
int main(){
    int num;
    printf("Enter a number:\n ");
    scanf ("%d ", &num);
    if(num > 0){
        printf("This is positive num:%d\n", num);
    }
    else if(num < 0){
        printf("This is a negative num:%d",num);
    } else {
        printf("This is a zero:%d",num);
    }
    return 0;
}

実行結果

Run 1: Enter a number:
23
23=This number is positive
Run 2: Enter a number:
-56
-56=This number is negative

このプログラムでは、ifelse ifelse の順に条件を評価していきます。数値が0より大きければ「正の数」、0より小さければ「負の数」、どちらでもなければ「ゼロ」と判定されます。

まとめ

ネストされたif-else文は、複数の条件を組み合わせた高度な判断ロジックを構築する際に非常に役立ちます。ただし、ネストが深くなりすぎるとコードの可読性が低下するため、適切なインデントやコメントを心がけ、必要に応じて論理演算子(&&||)の活用も検討しましょう。

  1. C言語のif-else文とは?基本構文から動作原理まで実例付きで徹底解説

    if-else文は、条件が「真(true)」の場合と「偽(false)」の場合の両方に対応できる条件分岐構文です。条件式がtrueと評価されたときには「trueブロック」が実行され、falseと評価されたときには「falseブロック(elseブロック)」が実行されます。基本構文if-else文は以下のような形式で記述します。if (condition){    True block statement(s) }else{    False block statement(s) }「condition」には比較演算子や論理演算子を使った条件式を記述し、その

  2. C言語の単純if文(simple if)をわかりやすく解説

    はじめにC言語における「if」キーワードは、論理条件が真(true)と評価された場合にのみ、特定の一連のステートメントを実行するために使用される、最も基本的な条件分岐です。本記事では、単純if文(simple if)の構文、動作の仕組み、そして具体的なサンプルコードを通じてその基本を解説します。構文単純if文の構文は以下の通りです。if (condition) { Statement(s); }単純if文の動作ifブロック内のステートメントは、条件が真(true)の場合にのみ実行され、偽(false)の場合は一切実行されません。条件が真のときに実行したいステートメントが1つだけである場