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("请输入a和b的值:\n");
scanf_s("%d%d", &a, &b);
c = a + b;
printf("两数之和为:%d\n", c);
printf("********************************************************************************\n");
}
elseif (i == 2)
{
printf("请输入a和b的值:\n");
scanf_s("%d%d", &a, &b);
c = a - b;
printf("两数之差为:%d\n", c);
printf("********************************************************************************\n");
}
elseif (i == 3)
{
printf("请输入a和b的值:\n");
scanf_s("%d%d", &a, &b);
c = a * b;
printf("两数乘积为:%d\n", c);
printf("********************************************************************************\n");
}
elseif (i == 4)
{
printf("请输入a和b的值:\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;
}
这个是买衣服的模型,其实现实生活中我们经常能用到的都任意嵌套模型,好了今天的讲解就到这里了,有什么问题大家可以随时问我。
本文原创未经允许不得转载