//
// main.swift
// Swift-逻辑表达式
//
// Created by dingkang on 16/6/8.
// Copyright © 2016年 dingkang. All rights reserved.
//
import Foundation
逻辑表达式
逻辑运算符把各个表达式连接起来组成一个逻辑表达式,如a&&b, 1||(!x)。逻辑表达式的值也只有两个:0和1, 0表示结果为假,1表示结果为真。
例如:当x=5时, x-6>0||x-5<=0 的值为多少?
因为当x=5时,x-6>0的结果为假,值等于0,而x-5<=0的结果为真,值为1, 0||1结果为1。
当对一个量(可以是单一的常量或变量)进行判断时,C编译系统默认为:0代表“假”
,非零代表“真”,例如:
若a=10,则!a=0, (因为a为10,非0,被认为是真,对真取反结果为假,假用0表示,所以!a=0)
A&&2的值为1(因为A为非0,为真,2也是非0,也是真,真与真,结果还是真,用1表示)
5||0的值为1(因为5非0,为真,0为假,真||假,结果为真,用1表示)
逻辑运算符的优先级和结合性
在“&&”、“||”、“!”这三种逻辑运算符中,它们的优先级各不相同。逻辑非(!)的优先级别最高,逻辑与(&&)的优先级高于逻辑或(||)
如果将逻辑运算符和算术运算符以及关系运算符结合在一起使用时,逻辑非(!)的优先级最高,然后是算术运算符、关系运算符、逻辑与(&&)、逻辑或(||)。
比如:5>3&&2||!8<4-2 等价于((5>3)&&2)||((!8)<(4-2))。
运算符“!”的结合性是“右结合”,而“&&”和“||”的结合性是“左结合”。
试判断某数x是否小于-2且大于等于5的逻辑表达式。当x的值为0时,分析运行结果
var x:Int,y:Bool //定义整型x,和bool型y
x = 0 //给x赋值为0
y = x < -2 && x >= 5 //将表达式的值赋给y
print("x<-2&&x>=5=\(y)") //输出结果(因为x为0,x<-2为假,x>=5也为假,假与假结果还是假,所以输出结果为false)
输出结果: