vlambda博客
学习文章列表

6.C语言之分支结构(2)

大家好!今天我们来学习if语句的嵌套结构,

if语句的嵌套是指在if或者else的分支下有包括了另一个if语句或者是if-else语句,if语句的嵌套位置是灵活的,嵌套的层次原则上可以是任意深度,嵌套的形式有两种:规则嵌套和任意嵌套。

我们先来看看规则嵌套:

规则嵌套的形式是每一层的else分支下嵌套着另一个if-else语句,嵌套的形式为:

if(表达式1

       <语句1>

else if(表达式2

       <语句2>

···

下面我们通过一个实例来讲解这种模型:

这是一个计算器的模型,用来计算两个数的加减乘除:

#include<stdio.h>

int main()

{

    int a, b, c, i;

    printf("计算规则:\n");

    printf("1.加法计算\t");

    printf("2.减法计算\n");

    printf("3.乘法计算\t");

    printf("4.除法计算\n");

  printf("-------------------------------------------------------------------------------\n");

loop:

    printf("请输入计算规则:\n");

    scanf_s("%d", &i);

   

    if (i == 1)

    {

         printf("请输入ab的值:\n");

         scanf_s("%d%d", &a, &b);

         c = a + b;

         printf("两数之和为:%d\n", c);

    printf("********************************************************************************\n");

    }

    elseif (i == 2)

    {

         printf("请输入ab的值:\n");

         scanf_s("%d%d", &a, &b);

         c = a - b;

         printf("两数之差为:%d\n", c);

    printf("********************************************************************************\n");

    }

    elseif (i == 3)

    {

         printf("请输入ab的值:\n");

         scanf_s("%d%d", &a, &b);

         c = a * b;

         printf("两数乘积为:%d\n", c);

    printf("********************************************************************************\n");

    }

    elseif (i == 4)

    {

         printf("请输入ab的值:\n");

         scanf_s("%d%d", &a, &b);

         c = a / b;

         printf("两数之比为:%d\n", c);

    printf("********************************************************************************\n");

    }

    else

    {

         printf("你输入的计算类型有错误!\n");

    }

    goto loop;

    return 0;

 

}

上述程序就是如果i==1就执行加法运算

如果i==2就执行减法运算

i==3就执行乘法运算

i==4就执行除法运算

大家自己看看,其实结构和原理都很简单,不明白可以问我。

在if-else嵌套结构中一定要注意if与else语句的匹配关系

在C语言中规定,else总是与离他最近的上一个if配对。

下面我们再来看看任意嵌套:

任意嵌套模型与规则嵌套模型不同的是,任意嵌套是在if-else结构中的任一执行框中插入if结构或者if-else结构,其实在现实生活中有许多问题都构成的是任意嵌套的形式:

#include<stdio.h>

int main()

{

    int price, i;

    printf("请输入衣服的价格:\n");

    scanf_s("%d", &price);

    printf("请输入衣服的颜色:\n");

    scanf_s("%d", &i);

    if (price >=100 && price <= 500)

    {

         if (i == 1)

         {

             printf("买两件\n");

         }

         else

         {

             printf("买一件\n");

         }

    }

    else

    {

         printf("不买\n");

    }

    return 0;

}

这个是买衣服的模型,其实现实生活中我们经常能用到的都任意嵌套模型,好了今天的讲解就到这里了,有什么问题大家可以随时问我。

本文原创未经允许不得转载