前言

用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.运行结果

多条件if语句应用

3.结果分析

程序中主要由一条if(表达式)…else结构构成,在if分支的复合语句,主要包括了一条输出语句,以及一条if…else分支的内嵌语句,主要处理当n为奇数的情况,首先输出n为奇数,然后根据if…else判断此数是否可以被3整除并输出相应的信息。在else分支的复合语句中,主要处理当n为偶数时的情况,也是首先输出n为偶数,然后嵌套一条由多个else if引起的条件判断,用来判断数据的具体位数。

三、拓展应用

  • 多条件分支if分支语句中的条件都是由if引出的,else是不能引出条件的。分析程序的时候,要注意每个分支成立的条件是什么,一般来讲分支成立条件由两部分组成:其一是由if引出的条件,其二是由else默认的条件。

总结

以上就是今天要讲的内容,本文仅仅简单介绍多条件if语句的应用。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐