if语句是实现分支结构的常用分支语句之一,另外还有条件运算符、switch语句等。
if语句的功能是:根据给定条件,选择程序执行方向。
if语句的基本格式
“if语句”又称条件语句,其基本格式为:
if(表达式) 语句1;
else 语句2;
其中:
- 表达式——条件表达式,可以是C++中任意合法表达式,如算术、关系、逻辑或逗号表达式等。表达式的值为0则为“假”;非0则为“真”。
- 语句1、2——内嵌语句,可以是单一、复合或者空语句,在语法上各自表现为1个语句。
执行流程
if语句的执行流程示意图如上图所示,描述如下:
(1) 计算条件表达式的值;
(2) 若表达式的值为真(或非0),执行语句1;否则,即表达式的值为假(或为0),则执行语句2。
图中的“块”即代表语句。
注意:if分支中的语句1也可以是空语句。如:
if(x<0) ;
注意与前面的简化格式区别开,使用时千万记得空语句也要以分号与其他语句分隔!
简化格式
当语句2为“空语句”时,往往可以将else语句省略,得到基本格式的简化形式:
if(表达式) 语句1;
执行流程变为:当条件表达式的值为假时,程序将直接执行分支语句之后的语句。
例如,对于下列分支函数:
(1)用标准if语句描述,格式如下:
if(x<0) y=0;
else y = x*x*x+3*x; y = 0;
(2)用无else的简化格式,其思想是:令y的值为0,如x>=0,重新计算y的值,否则(即x<0),y的值不变。 则可描述为:
if(x>=0) y = x*x*x+3*x;
应用举例
【例2.4】 输入一个年份,判断是否为闰年。
#include <iostream>
using namespace std;
int main( ){
int year;
cout<<"输入年份:"<<endl;
cin>>year;
if (year%4==0&&year%100!=0||year%400==0)
cout<<year<<"是闰年"<<endl;
else cout<< year<<"年不是闰年"<<endl;
return 0;
}
【例2.5】 从键盘上输入三个整数,输出其中的最大数。
#include <iostream>
using namespace std;
int main(){
int a, b, c, max;
cout<<"输入三个整数:";
cin>>a>>b>>c;
cout<<"a="<<a<<'\t'<<"b="<<b<<'\t'<<"c="<<c<<endl;
if(a>=b) max=a;
else max=b;
if(c>max) max=c;
cout<<"最大数为:"<<max<<endl;
return 0;
}
说明:‘ \t’ 为水平制表符,一般相当与敲一个Tab的效果(也就是4个或者8个空格),即空格效果。(注意用单引号或双引号)