C语言学习笔记之(if条件判断语句)

if语句允许程序通过判断表达式的值从两种选项中选择一种。if语句的最简单形式如下:

if(表达式)	语句

其中:表达式一般为逻辑表达式或关系表达式。语句可以是一条简单的语句或多条语句,当为多条语句时,需要用“{}”将这些语句括起来,构成复合语句。

if语句的执行过程是:当表达式的值为真(非0)时,执行语句,否则直接执行if语句下面的语句。

一、单if判断语句

#include <stdio.h>
int main()
{
	int a,b,max;					/*定义整型变量a,b和max*/
	printf("请输入两个整数:");				/*输出屏幕提示*/
	scanf("%d%d",&a,&b);			              /*从键盘输入a,b的值*/
	max=a;						/*假设a是较大的数先赋给max*/
	if(a<b) 						/*若a比b小,将b赋给max*/
		max=b;
	printf("两数中较大的数为:%d\n",max);	               /*输出结果*/
	return 0;						/*函数返回值0*/
}

//输出结果为
输入 1和2
输出 2

二、if else语句

#include <stdio.h>
int main()
{
	int a,b;						/*定义整型变量a和b*/
	printf("请输入两个整数:");				/*输出屏幕提示*/
	scanf("%d%d",&a,&b);				/*从键盘输入a和b的值*/
	if(a>b){						/*若a大于b,输出a*/
		printf("max=%d\n",a);
    }
	else{						/*否则输出b*/
		printf("max=%d\n",b);
    }    
	return 0;						/*函数返回值0*/
}

三、else if语句

书写格式

if(表达式1)		语句1
else if(表达式2)	语句2
else if(表达式3)	语句3
…
else if(表达式n)	语句n
else				语句n+1

执行过程是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句,然后跳到整个if语句之外继续执行程序。如果所有的表达式都为假,则执行最后一个else后的语句,然后继续执行后续程序。

示例代码

判断成绩

#include <stdio.h>
int main()
{
	int score;
	printf("请输入成绩:");			/*屏幕提示语*/
	scanf("%d",&score);			/*输入百分制的分数*/
	if(score>100||score<0)			/*分值不合理时显示出错信息*/
		printf("输入数据无意义\n");
	else if(score>=90)		              /*这里的else表示0=<score&&score<=100*/
		printf("优\n");
	else if(score>=80)		              /*这里的else表示0=<score&&score<90*/
        printf("良\n");
	else if(score>=70)		           /*这里的else表示0=<score&&score<80*/
		printf("中\n");
	else if(score>=60)	                          /*这里的else表示0=<score&&score<70*/
		printf("及格\n");
	else				           /*这里的else表示0=<score&&score<60*/
		printf("不及格\n");
	return 0;
}

四、嵌套if语句

书写格式

if(表达式1)
	if(表达式2)	语句1
	else		语句2
else
	if(表达式3)	语句3
	else		语句4

示例代码

输入三个数比较大小

#include<stdio.h>
int main()
{
       int a,b,c,max;					/*定义变量*/
       printf("请输入三个整数,用逗号隔开\n");		/*输出提示信息*/
       scanf("%d,%d,%d",&a,&b,&c);			/*输入a,b,c变量的值*/
       if(a>b)					/*a>b*/
	if(a>c)	max=a;				/*a>b并且a>c,最大值为a*/
	else max=c;				/*a>b并且c>a,最大值为c*/
       else						/*a<b*/
	if(b>c)	max=b;				/*b>a并且b>c,最大值为b*/
	else	max=c;				/*b>a并且c>b,最大值为c*/
       printf("max=%d\n",max);			/*输出最大值max*/
       return 0;					/*函数返回值0*/
}