if 语句

对条件做出判断,从而决定用那一段代码,使用选择结构语句。if 条件有三种语法形式。

选择结构语句

if 语句 —— 单分支结构

单分支结构

if —- else 语句 —— 双分支结构

双分支结构

if 语句的嵌套

if 语句的嵌套

switch语句

switch 条件语句也是一种常用的选择语句,和if 语句不同, 她只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码。

switch 条件语句

关系运算与逻辑运算

运算符类型 作用
算术运算符 用于处理四则运算
赋值运算符 用于将表达式的值赋给变量
关系运算符 用于表达式的比较,并返回一个真值或假值
逻辑运算符 用于根据表达式的值返回真值或假值
三目运算符 用于根据表达式的值执行相应的语句
逗号运算符 用于连接并执行若干表达式,并返回最后一个表达式的值
位运算符 用于处理数据的位运算
sizeof运算符 用于求字节数长度

关系运算符

关系运算用于对两个数值或变量进行比较,其结果是一个逻辑值(“真” 或 “ 假”)。

运算符 运算 范例 结果
== 相等于 4 == 3 0
!= 不等于 4 != 3 1
< 小于 4 < 3 0
> 大于 4 > 3 1
<= 小于等于 4 <= 3 0
>= 大于等于 4 >= 3 1

逻辑运算符

逻辑运算符用于判断数据的真假,其结果仍为 “真” 或 “ 假” 。

运算符 运算 范例 结果
! !a 如果a为假,则!a为真 如果a为真,则!a为假
&& a&&b 如果a和b都为真,则结果为真否则为假
\ \ a \ \ b 如果a和b有一个或一个以上为真,则结果为真,二者都为假,结果为假

相关实例

  • 示例一

    输入一个学生的成绩score, 判断是否及格。

    #include <iostream>
    using namespace std;
    
    int main ()
    {
        int score ;
        cin >> score ;
        if ( score >= 60)
            cout << "及格" << endl;
        return 0 ;
    }
  • 示例二

    输入一个学生的成绩score, 判断是及格还是不及格。

    #include <iostream> 
    using namespace std;
    int main ()
    {
        int score ;
        cin >> score;
        if ( score >= 60 )
            cout << "及格" << endl;
        else  cout << "不及格" << endl;
        return 0;
    }
  • 示例三

    输入一个学生的成绩score, 判断其成绩等级(<60不及格,60-69及格,70-79中等,80-89良好,90-100优秀。)。

    #include <iostream>
    using namespace std;
    int main ()
    {
        int score ;
        cin >> score ;
        if(score >= 70)
            if(score < 80)
                cout << "中等" << endl;
        	else if (score < 90)
                cout << "良好" << endl;
        		else  cout << "优秀" << endl;
        else if (score >= 60 )
            cout << "及格" << endl;
        	else   cout << "不及格" << endl;
        return 0 ;
    }
  • 示例四

    输入一个年份,判断其是闰年好事平年(非整百年:能被4整除的为闰年;整百年:能被400整除的是闰年。)。

    #include <iostream>
    using namespace std;
    int main ()
    {
        int year ;
        cin >> year;
        if(year %4 ==0 && year%100 != 0 )||(year % 400 == 0)
            cout << "这一年是闰年。" << endl;
        else   cout << "这一年是平年。" << endl;
        return 0;
    }
  • 示例五

    输入一个整数,判断其是否为水仙花数。(所谓水仙花数是指一个n位数(n >=3) , 他的每个位上的数字n次幂之和等于本身。例如,3位数153是水仙花数,各位数字的立方和$ 1^3 + 5^3 + 3^3 = 153 $。)。

    #include <iostream>
    using namespace std;
    int main()
    {
        int num , a , b , c ;
        cin >> num ;
        a = num % 10 ;
        b = (num/10)%10;
        c = num/100;
        if (num == (a*a*a + b*b*b + c*c*c))
            cout << num << "是水仙花数" << endl;
        else   cout << num << "不是水仙花数" << endl;
        return 0 ;
    }
  • 示例六

    输入一个月份,判断属于什么季节(阳历3-5月为春季,6-8月为夏季,9-11月为秋季,12-来年2月为冬季。)。

    #include <iostream>
    using namespace std;
    int main()
    {
        int month , season = 0;
        cin >> month ;
        if(3 <= mouth && month <=5)
            season = 1;
        else if(6 <= month && month <=8)
            season = 2;
        else if(9 <= month && month <=11)
            season = 3;
        else if(1 <= month && month <= 2)||(month == 12)
            season = 4;
        switch(season)
        {
            case 1:
                cout << "春季" << endl;
                break;
            case 2:
                cout << "夏季" << endl;
                break;
            case 3:
                cout << "秋季" << endl;
                break;
            case 4:
                cout << "冬季" << endl;
                break;
            default: cout << "输入的月份不对!" << endl;
        }
        return 0 ;
    }

注意

== 运算千万不要写成赋值 =

例如 :if(a == b) if(a = b)

优先级

&&优先级高于|| && 、|| 优先级低于关系运算 !优先级高于所有关系运算和算术运算

switch语句

switch语句执行完一个case之后不会自动停止,如果需要停止,必须使用break语句 switch语句中的每一个case必须是一个单独的值。这个值必须是整数或字符,不能是浮点数。如果涉及取值范围、浮点测试、或比较,则先使用if else转换。