zoukankan      html  css  js  c++  java
  • 相等与关系运算符

    1.19 判断:相等与关系运算符

    本节介绍简单的C++ if结构,使程序根据某些条件的真假做出判断。如果条件符合,即为真(true),则执行if结构体的语句;如果不符合,即条件为假(false),则不执行语句,稍后将举例说明。

    if结构中的条件可以用相等运算符(equality operator)和关系运算符(relational operator)表示,如图1.13 关系运算符具有相同的优先级,结合律为从左向右。相等运算符的优先级也相同,但低于关系运算符的优先级,结合律也为从左向右。

     标准代数相等与关系运算符    C++相等与关系运算符    C++条件举例      C++条件含义
       
                =                     ==                   x==y            x等于y
              
               ≠                    !=                    x!=y            x不等于y
               关系运算符 
               >                      >                    x>y               x大于y
               <                      <                    x<y               x小于y
               ≥                     >=                   x>=y            x大于或等于y
               ≤                     <=                   x<=y            x小于或等于y
        
      

    图 1.13 相等与关系运算符

    常见编程错误1.5:

    如果==、!=、 >=和<=运算符的符号对之间出现空格,则会出现语法错误。

    常见编程错误1.6:

    逆转!=、 >=和<=运算符的符号顺序(变为=!、=>、和=<)通常会出现语法错误。将!=写成=!有时不会出现语法错误,但会出现逻辑错误。

    常见编程错误1.7

    不要把相等运算符==与赋值运算符=混淆起来。相等运算符表示等于,而赋值运算符表示取、取值或赋值。有人把相等运算符读作双等于。稍后会介绍,把相等运算符==与赋值运算符混淆起来可能不会造成明显的语法错误,但可能造成相当明显的逻辑错误。

    下例用六个if语句比较用户输入的两个数。如果其中任何一个if语句的条件成立,则执行与该if相关联的输出语句。图1.14显示了这个程序和三个示例输出。

    注意图1.14的程序边疆使用流读取操作输入两个整数。首先将一个值读到num1中,然后将一个值读到num2中。if语句的缩排是为了提高程序的可读性。另外,注意图1.14中每个if语句体中有一条语句。第2章将会介绍结构体中有多条语句的if 语句(将语句体放在花括号“{ }”中)。

     // Fig.1.14:fig01_14.cpp
     // Using if statements,relationnal
      // operators,and equality operators
     #include<iosream.h>
     int main()
     {
          int num1,num2;
         cout<<"Enter two integers,and I will tell you
    "
         <<"the relationships they satisfy: ";
         cin>>num1>>num2;        // 读取两个整数
          if(num1==num2)
           cout<< num1<<"is equal to "<< num2<< endl;
         if(num1!=num2)
         cout<< num1<< " is not equal to "num2<< endl;
         if(num1< num2)
             cout<< num1<< " is less than "<< num2<< endl;
         if(num1>num2)
             cout<< num1<< " is greater than "<< num2<< endl;
         if(num1<=num2)
             cout<< num1<< " is less than or equal to "
                 << num2<< endl;
         if(num1>=num2)
             cout<< num1<< " is greater than or equal to "
                 << num2<< endl;
         return;        // 返回一个程序正常结束的标识
     }
    
    输出结果:
      Enter two integers,and I will tll you 
      The relationships they satisfy: 3   7 
      3 is not equal 7 
      3 is less than 7 
      3 is less than or equal   to 7 
       
      Enter two integers,and I will tell you 
      the relationships   they satisfy:22 12 
      22 is not equal 12 
      22 is gretaer than 12 
      22 is greater than or equal to 12 
      Enter two integers,and I will tell   you 
      the relationships they satisfy:7 7 
      7 is equal to 7 
      7 is   less than or equal to 7 
      7 is greater than or equal to   7 

    图1.14 使用相等和关系运算符

    编程技巧1.16

    if语句中的缩排可以提高程序的可读性,突出结构体

    编程技巧1.17

    程序中一行只放一条语句

    常见编程错误1.8

    if语句的打件后面的右括号之后紧跟着分号通常是个逻辑错误(但不是语法错误)。分号使if结构体变成空的,不管打件是否为真,这个if结构都不进行任何操作。更糟糕的是,原先if结构体变成if结构后面的语句,不管条件如何总是执行,通常会使程序产生错误结果。

    注意图1.14中空格的用法。在C++语言中,空白字符(如制表符、换行符和空格)通常都被编译器忽略。因此,语句中可以根据程序员的爱好加上换行符和空格,但不能用换行符和空格分隔标识符。

    觉编程错误1.9

    把main写成ma in是语法错误。

    编程技巧1.18

    长语句可以分成多行。如果一条语句要分成多行,可以在分隔列表的逗号或长表达式的运算符后面断行。如果语句要分成两行或多行后续行可以编排。

    图1.15显示了本章介绍的运算符优先级,运算符优先顺序从上向下递减。注意赋值运算符之后的所有运算符结合律均为从左向右。加法是左结合的,因此表达式x+y+z求值为(x+y)+z。赋值运算符是从右向左结合的,因此表达式x=y=0求值为x=(y=0),首先将0赋给y,然后将结果0赋给x。

            运算符                      结合律                       类型
           (   )                        从左向右                    括号
           *    /      %                从左向右                    乘
           +    -                       从左向右                    加 
           <<      >>                   从左向右                    流插入/读取
           <      <=    >    >=         从左向右                    关系
           ==      !=                   从左向右                    等于 
           =                            从右向左                      赋值 
        
    图 1.15 运算符优先级和结合律

    2015考研复试技巧http://www.kyjxy.com/fushi/zhinan/
    2016考研数学资料http://www.kyjxy.com/shuxue/ziliao/
    2016考研专硕复习方法http://www.kyjxy.com/zhuanshuo/

  • 相关阅读:
    【BZOJ2329】括号修复(splay)
    连接数据库
    文件锁
    带进度条的输入流
    文件对话框
    使用Scanner来解析文件
    IO流(数据流
    IO流(随机流,数组内存流
    IO流文件字符输入输出流,缓冲流
    IO流(文件字节输入输出
  • 原文地址:https://www.cnblogs.com/along-may/p/4532985.html
Copyright © 2011-2022 走看看