4.3.1if语句的两种基本形式1.标准if-else语句-般形式:一if(表达式)单条语句1;else单条语句2;其中,语句1称为if子句;语句2称为else子句。该语句的功能是:若表达式的值为非0,则执行语句1;非0表达式否则,执行语句2。其执行流程图如图4.3所示,例如:语句!语句2if(a>=b)max=a;elsemax=b;if之后的表达式一般为关系表达式或逻辑表达式。图4.3标准if-else语句执行【例4.7】从键盘输入两个整数,求出其中的较大数并流程图输出。算法流程图如图4.1所示。源程序:#include <stdio.h>int main(void)lint a, b,max;printf("请输人两个整数(用空格分隔)\n"):scanf("gd%d",&a,&b):if(a>=b)max=a;elsemax=b;printf("较大数为%d/n",max);return 0;【例4.8】编写程序实现:输人一个年份,判断是否是年。编程思路:c根据4.1.4节中所述闰年的条件可以画出算法流程图,如图4.4所示。语源程序:言程#include<stdio.h>序int main(void)设int year;计printf("请输人一个年份:");新scanf("%d",&year);思if((year%4==0)&&(year%100!=0)11(year%400==0))路printf("%d是闰年n",year);40
elseprintf("%d不是闰年\n",year);return 0;开始输入年份year(year4==0)&&(year100!=0)1(year400mm0)输出“是闰年”输出“不是闰年”(结束)图4.4:判断闰年的算法流程图此处应注意,表示闰年条件的表达式中运算符的优先顺序,可以通过适度添加括号以明确运算符的优先次序并改善代码的可读性。2.不带else的if语句-般形式:一if(表达式)表达式单条语句:该语句的功能是:若表达式的值为非0,则执行其后的语句,然后非0执行语句的后继语句:否则,直接执行语句的后继语句。其执行流语句程图如图4.5所示。-1 x<0【例4.9】已知符号函数f(α)=x=0,编写程序,输入一个0图4.5不带1,x>0else的if语句执x值,求f(x)的值。行流程图编程思路:第这是一个多分支问题,可以使用不带else的if语句对每种情况进行判断,并分别进行4相应的处理。符号函数算法流程图如图4.6所示。章源程序:#include <stdio.h>送int main(void)择[float x;结inty//注意不能直接用f(x)作为变量名构printf("请输人一个实数x:In");程scanf("gf",&x):序if(x<0)//平行if结构设y=-1;计if(x==0)41