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个空格),即空格效果。(注意用单引号或双引号)

最新文章

  1. [RxJava]在学习RxJava中的错误理解
  2. SQL Server附加数据库出现错误5123的正确解决方法
  3. Xamarin.ios——First APP
  4. 用ildasm/ilasm修改IL代码
  5. Andriod——区别DVM与JVM
  6. (转)卸载SQLServer2008 数据库
  7. Android中Activity启动模式详解
  8. KVO与KVC初步了解
  9. 仿新浪微博短网址PHP实现方案
  10. myEclipse + phonegap-2.9.0 总跳出3个脚本提示
  11. 巧用test判断来写shell脚本
  12. hdu_5927_Auxiliary Set(xjb搞)
  13. MongoVUE的table view视图不显示列标题
  14. CamStar insitexmlclient重新封装为.net Core类库
  15. django2+uwsgi+nginx上线部署到服务器Ubuntu16.04(最新最详细版)
  16. KEYCODE_DPAD_CENTER 和 KEYCODE_ENTER
  17. user表中存在多条相同user不同host用户信息时MySQL该匹配哪条记录登录?
  18. Daily Scrum - 12/01
  19. ftp.GetResponse() 无法连接到远程服务器
  20. bzoj 1497 最大获利 - 最小割

热门文章

  1. sqli-libs(54-65关)
  2. drf框架,restful接口规范,源码分析
  3. Euler Sums系列(五)
  4. apt-get install 下载速度慢问题的解决
  5. Error: Cannot find module &#39;webpack&#39; 问题解决办法
  6. 「JSOI2015」isomorphism
  7. laravel执行数据库迁移的过程中出现Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Operation timed out (SQL: select * from information_schema.tables where table_schema = shop and table_name = migrations
  8. [转载]PHP开发环境 AppServ 2.5.10 安装及修改
  9. PostgreSQL日期加减
  10. Android学习06