跳至正文
View Categories

1 min read

主要内容 #

1. 关系运算符 #

在数学中,我们学习过数值大小关系的表达。
在 C++ 中,大多数的数学关系,都是相同的。不过,由于一些数学上的符号,
在键盘上不能直接打出来。所以 C++ 的“关系运算符”上,和数学略有不同。

下表中,展示了这些不同。

关系运算符的示例:

5 >  6;   // 大于
5 >= 6;   // 大于等于
5 <  6;   // 小于
5 <= 6;   // 小于等于
5 == 6;   // 等于
5 != 6;   // 不等于

2. 关系表达式 #

C++ 中,将含有“关系运算符”的表达式,称为“关系表达式”。
上面的示例代码中,全部都属于“关系表达式”。

而且,在上一节的课程中,我们在例程中演示了使用“关系表达式”给 bool 变量赋值
下面,总结一下“关系表达式”的常用情况。

int main()
{
    5 > 6;                        // 关系表达式

    bool b_0 = 5 > 6;             // b_0 的值为 false
    bool b_1 = 5 < 6;             // b_1 的值为 true
    bool b_2 = (5 > 6);           // b_2 的值为 false
    bool b_3 = 5 > (6-5);         // b_3 的值为 true
    
    int  a   = 10;
    bool b_4 = 5 > a;             // b_4 的值为 false

    int  dashima = 15;
    bool b_5     = dashima != a;  // b_5 的值为 true
    bool b_6     = dashima!=7;    // b_6 的值为 true,空格可以省略

    bool result;
    result =   5 > = 6;           // 【错误写法】>= 中间不能有空格
    result =   5 < = 6;           // 【错误写法】<= 中间不能有空格
    result =   5 = = 6;           // 【错误写法】== 中间不能有空格
    result =   5 ! = 6;           // 【错误写法】!= 中间不能有空格

    return 0;
}
  • 表达式中,数值/变量 和 符号 之间的空格可以省略
  • 请口头判断下面表达式的值。

    10 > 8;
    10 >= 8;
    1 < 8;
    1 <= 8;
    1 == 8;
    1 != 8;
    
    int dashima(50);
    
    dashima != 50;
    dashima == 50;
    dashima >= 50;
    dashima <= 50;

    3. 判断语句 #

    人生总是有很多选择,我们无时不刻不在做着各种各样的选择。

    对于程序而言,也是如此。那么,C++ 是怎么表示选择的呢?

    /*
        判断语句 if 
        假设,图中的人需要根据抛硬币的结果,来选择道路。
        # 正面:向左走;
        # 反面:向右走;
    */
    
    if(硬币是正面)
    {
        向左走; // 正面硬币 
    }
    else
    {
        向右走; // 反面硬币
    }

    说明:

  • 小括号()里面的内容,是“关系表达式”;
  • 小括号()里面的内容,也可以是 bool 变量;
  • if,是“如果”的意思;
    小括号()里面的关系表达式若为“真”(true),则执行后面 { } 里面的内容。
  • else,是“否则”的意思;
    小括号()里面的关系表达式若为“假”(false),则执行后面 { } 里面的内容。
  • 3.1 判断语句 if … else … #

    下面给出可以运行的代码:

    #include < iostream >
    int main()
    {
        int a(0);
        std::cout <<"请输入(1 表示正面,0 表示反面):" << std::endl;
        std::cin >> a;
        if(a == 1)
        {	
            std::cout <<"输入为 1 ,向左走" << std::endl;
        }
        else
        {
            std::cout <<"输入为 0 ,向右走" << std::endl;
        }	
    
        return 0;
    }

    3.2 判断语句 if … #

    else 部分,可以省略。

    #include < iostream >
    int main()
    {
        int a(0);
        std::cout <<"请输入(1 表示正面,0 表示反面):" << std::endl;
        std::cin >> a;
        if(a == 1)
        {	
            std::cout <<"输入为 1 ,向左走" << std::endl;
        }
    
        return 0;
    }

    3.3 省略大括号 #

    假如,处理语句只有一句,大括号可以省略。比如:

    #include < iostream >
    int main()
    {
        int a(0);
        std::cout <<"请输入(1 表示正面,0 表示反面):" << std::endl;
        std::cin >> a;
        if(a == 1)
            std::cout <<"输入为 1 ,向左走" << std::endl; // 大括号可以省略
        else
            std::cout <<"输入为 0 ,向右走" << std::endl; // 大括号可以省略
    
        return 0;
    }

    假如,含有超过一条处理语句,大括号不可以省略。比如:

    #include < iostream >
    int main()
    {
        int a(0);
        std::cout <<"请输入(1 表示正面,0 表示反面):" << std::endl;
        std::cin >> a;
        if(a == 1)
        {
            std::cout <<"输入为 " << a << std::endl; // 大括号不可以省略
            std::cout <<"请向左走" << std::endl; 
        }
        else
        {
            std::cout <<"输入为 " << a << std::endl; // 大括号不可以省略
            std::cout <<"请向右走" << std::endl; 
        }
    
        return 0;
    }

    4. 小结 #

  • 关系运算符
  • 5 >  6;   // 大于
    5 >= 6;   // 大于等于
    5 <  6;   // 小于
    5 <= 6;   // 小于等于
    5 == 6;   // 等于
    5 != 6;   // 不等于
  • if 的基本结构
  • if(表达式)
    {
        // 执行语句    
    }
  • if 的基本结构,带有 else
  • if(表达式)
    {
        // 执行语句 1
    }
    else
    {
        // 执行语句 2
    }

    习题 #

    课后练习