关系运算和逻辑运算
并不是在任何情况下,都要求按照语句出现的顺序执行的,人们往往要求根据某个指定的条件是否满足来决定执行的内容。
关系运算
关系运算是使用关系运算符比较两个值之间关系的运算,评估操作数之间的关系并返回布尔值。
关系运算符有:大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)。
需要注意的是,前四种关系运算符的优先级别相同,后两种运算符的优先级别相同,但前四种高于后两种。
其中,关系运算符的优先级低于算术运算符,高于赋值运算符。
用关系运算符将两个表达式连接起来的式子,称关系表达式,一般表现形式为 表达式 关系运算符 表达式。
其中,表达式可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式等。
任何表达式都有一个确定的值,算术表达式的值是一个数值,赋值表达式的值就是赋予变量的值,关系表达式的值是一个逻辑值。
逻辑常量和逻辑变量
C语言中没有提供逻辑型数据,关系表达式的值用数值1和0代表,C++增加了逻辑型数据。逻辑型常量只有两个,即false和true。
逻辑型变量要用类型标识符bool来定义,他的值只能是false和true之一。
由于逻辑变量是用关键字bool来定义的,古称为布尔变量,逻辑型常量又称为布尔常量,所谓逻辑型就是布尔型。
在编译系统处理逻辑型数据时,将false处理为0,将true处理为1,逻辑型变量在内存中占1字节,用来存放0或1。
逻辑型数据可以与数值型数据进行算术运算,计算时,true和false分别按1和0进行计算。
逻辑运算
C++有三种逻辑运算符:&&、||、!,分别是逻辑与、逻辑或和逻辑非,其中,逻辑非的优先级最高。
优先级排序为:逻辑非、算术运算符、关系运算符、逻辑与和或、赋值运算符。
将两个关系表达式用逻辑运算符连接起来就成为一个逻辑表达式,其一般形式为 表达式 逻辑运算符 表达式
逻辑表达式的值是一个逻辑量“真”或“假”。
逻辑运算符两侧的表达式不但可以是关系表达式或整数,也可以是任何数值类型数据,包括字符型、浮点型或指针型等,系统最终以0或非0来判定他们属于“真”或“假”。
用逻辑表达式表示闰年:(year % 4 == 0 && year % 100 !=0)||(year % 400 == 0)