前言
用C语言编写程序,输入数据判断数据的奇偶性,若输入为奇数,判断是否为3的倍数,若为偶数,则判断包含数字的位数。
一、多条件if语句的应用
在if型的选择语句中都是由if语句印出条件。若解决问题的分支较多,有多个条件,可以用else if 形式描述多个条件,引出多个分支来解决问题。以p1到pn表示n个条件,B1到B(n+1)表示n+1个分支,这种格式的具体形式为:
if (表达式p1)
(语句组B1)
else if (表达式p2)
(语句组B2)
else if (表达式p3)
(语句组B3)
else if (表达式p4)
(语句组B4)
......
else (语句组Bn +1)
以上就是嵌套if语句,可以理解为:从上向下逐行对if后的表达式进行检测,当某一个表达式的值为非零时,就执行与此有关子句中的语句,阶梯形中的其余部分被穿越过去;如果所有表达式的值为零,则执行最后的else子句;此时如果程序中最内层的if语句没有else子句,既没有最后的else子句,那么将不进行任何操作。
问题分析:先判断输入数字的奇偶性;如果为奇数判断其是否为三的倍数;如果为偶数判断其为几位数。
二、程序实例
1.程序代码
#include <stdio.h>
main() { /*主函数开始*/
int n;
printf("input data n ...\n"); /*输出提示*/
scanf("%d",&n); /*输入数据*/
if (n%2!=0){ /*条件判断开始*/
printf("%d is odd,",n);
if (n%3!=0) /*如果n不可被3整除*/
printf("it isn\'t times of 3.\n"); /*输出不是3的倍数*/
else /*n可以被3整除*/
printf("it is times of 3.\n"); /*输出为3的倍数*/
}
else{ /*条件不成立,也就是n为偶数*/
printf("%d is even,",n); /*输出n为偶数*/
if (n>9999) /*如果n大于9999*/
printf("it has five numbers.\n"); /*n为5位数*/
else if (n>999) /*如果n大于999*/
printf("it has four numbers.\n"); /*n为4位数*/
else if (n>99) /*如果n大于99*/
printf("it has three numbers.\n"); /*n为3位数*/
else if (n>9) /*如果n大于9*/
printf("it has two numbers.\n"); /*n为2位数*/
else /*其它正数*/
printf("it has one numbers.\n"); /*n为1位数*/
}
}
2.运行结果
3.结果分析
程序中主要由一条if(表达式)…else结构构成,在if分支的复合语句,主要包括了一条输出语句,以及一条if…else分支的内嵌语句,主要处理当n为奇数的情况,首先输出n为奇数,然后根据if…else判断此数是否可以被3整除并输出相应的信息。在else分支的复合语句中,主要处理当n为偶数时的情况,也是首先输出n为偶数,然后嵌套一条由多个else if引起的条件判断,用来判断数据的具体位数。
三、拓展应用
- 多条件分支if分支语句中的条件都是由if引出的,else是不能引出条件的。分析程序的时候,要注意每个分支成立的条件是什么,一般来讲分支成立条件由两部分组成:其一是由if引出的条件,其二是由else默认的条件。
总结
以上就是今天要讲的内容,本文仅仅简单介绍多条件if语句的应用。