• Swift的比较运算, 三目条件运算, 区间运算, 逻辑运算
    废话少说, 我们继续把运算讲完:
    
    ----------
    
    1.比较运算
    ------
    
    在Swift中, 标准C里的比较运算符都是可以使用的, 比如:
    
    ```
    a == b
    a != b
    a > b
    a= b
    a 1
    // 返回一个true, 因为2 大于 1
    1 = 1
    // 返回一个true, 因为1 等于或者大于1
    2 < = 1
    // 返回一个false, 因为2 不小于 1
    ```
    
    也可以在 if 语句中使用:
    
    ```
    let name = "world"
    if name == "world" {
        println("Hello world")
    } else  {
        println("我不认识你啊, \(name)")
    }
    // 打印的结果: Hello world
    ```
    
    ----------
    
    
    2. 三目条件运算
    ---------
    
    其实所谓的三目运算就是一个if语句:
    
    这就是三目运算符的原型:
    ```
    if question {
        answer1
    } else {
        answer2
    }
    ```
    举个例子:
    
    ```
    let contentHeight = 40
    let hasHeader = true
    let rowHeight = contentHeight + (hasHeader ? 50: 20)
    println(rowHeight)
    // 打印出来的结果: 90
    ```
    
    原型:
    
    ```
    let contentHeight = 40
    let hasHeader = true
    var rowHeight = contentHeight
    if hasHeader {
        rowHeight = rowHeight + 50
    } else {
        rowHeight = rowHeight + 20
    }
    println(rowHeight)
    // 打印出来的结果: 90
    ```
    利用三目运算符比原型简单多了.
    
    ----------
    
    3.区间运算符
    -------
    所谓的区间运算其实就是我们设定的范围, 在我们 for-in 的时候就会用到, 或者其他有关于从几到几的运算都是要用到区间运算符的, 在Swift中的区间运算符很简单:
    
    区间运算符
    ```
    for index in 0...10 {
            println(index)
    }
    // 打印出来的结果: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    ```
    
    还有一种叫做半区间运算符
    
    ```
    for index in 0..<10 {
            println(index)
    }
    // 打印出来的结果: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    ```
    
    看到结果就知道是什么情况了, 这里我就不多做说明了.
    
    ----------
    
    4.逻辑运算符
    -------
    在Swift中也有与或非这三个逻辑运算符:
    
    ```
    !a
    a&&b
    a||b
    ```
    由于原理是和OC一致, 所以这里就不多做解释, 直接看例子:
    
    逻辑非
    
    ```
    let allowedEntry = false
    if !allowedEntry {
        println("ACCESS DENIED")
    }
    // 打印出来的结果: ACCESS DENIED
    ```
    
    逻辑与
    
    ```
    let enteredDoorCode = true
    let passedRetinaScan = false
    
    if enteredDoorCode && passedRetinaScan {
        println("Welcome!")
    } else {
        println("ACCESS DENIED")
    }
    // 打印出来的结果: ACCESS DENIED
    ```
    
    逻辑或
    
    ```
    let hasDoorKey = true
    let knowsOverridePassword = false
    
    if hasDoorKey || knowsOverridePassword {
        println("Welcome!")
    } else {
        println("ACCESS DENIED")
    }
    // 打印出来的结果: Welcome!
    ```
    
    组合逻辑
    
    ```
    let enteredDoorCode = false
    let passedRetinaScan = true
    let hasDoorKey = false
    let knowsOverridePassword = true
    
    if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
            println("Welcome!")
        } else {
            println("ACCESS DENIED")
        }
    //打印出来的结果: Welcome!
    ```
    
    在多重与或非运算的时候, 我们是从左往右开始的, 如果按照例子这样子来写, 是不够明确, 所以我们可以使用 () 号来区分优先级:
    
    ```
    let enteredDoorCode = false
    let passedRetinaScan = true
    let hasDoorKey = false
    let knowsOverridePassword = true
    
    if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
            println("Welcome!")
        } else {
            println("ACCESS DENIED")
        }
    // 打印出来的结果: Welcome!
    ```
    这样子的写法可以使代码有非常好的明确性.
    
    这里还有一个比较特殊的例子:
    
    ```
    let defaultColorName = "red"
    let userDefinedColorName: String?
    var colorNameToUse = defaultColorName ?? userDefinedColorName
    println(colorNameToUse)
    // 打印出来的结果: Optional("red")
    ```
    UserDefinedColorName 变量被定义作为一个可选的字符串,默认值为零。由于 userDefinedColorName 是一个可选的类型,可以使用零合并运算符来考虑它的价值。在上面的示例中,该运算符用于确定一个名为 colorNameToUse 的字符串变量的初始值。因为 userDefinedColorName 是零,表达 userDefinedColorName ?? defaultColorName 返回的值的 defaultColorName,或"红色"。
    
    ----------
    好了, 这次我们就讲到这里, 下次我们继续~~
    展开全文
  • 三目运算符 三目运算符由问号和冒号组成,先是一个表达式,判断语句,如果成立,就执行冒号前面的,如果不成立就执行冒号后面的,一对二的选择判断语句比如:一个小伙得了一百分let score = 100如果90以上算优秀,90分一下...
  • Swift-三目条件运算符 2016-02-14 15:22:09
    // Swift-三目条件运算符 // // Created by dingkang on 16/2/2. // Copyright © 2016年 dingkang. All rights reserved. //import Foundation/* 条件运算符由“?”和“:”组成,是Swift语言中唯一的一个...
  • Swift 三目运算符 2017-03-06 14:54:49
    @IBOutlet weak var isAwayCityT: UISwitch!  var is_back = "0"   is_out = isAwayCityT.isOn == true ? "1" : "0
  • 三目运算、可选类型 2016-03-24 20:13:48
    //: Playground - noun: a place where people can playimport UIKit let num = 10 if num == 5 { print("5") }else{ print("10") ... 注意:在做Swift开发中三目运算符用得频率非常高 */ let res =
  • /**  if 语句的多分支执行  */  let score:Double = 98.5  var res:String = ""  if score >= 90 {  res = "优秀"  } else if score >= 80
  • /* * 本节内容: ... * 4.区间运算符 */ let imZero = 30 let imIntOne = 10.5 imIntOne / Double(imZero) // Swift2.2的语法 // let result = 10 % 2.5 // Swift3.0 let result = 10.0.truncating
  • Swift 中 if , else if ,三目运算相较OC来说 , 除了更加精简 , 几乎没有变化 . 只是Swift中新增了 guard判断 , Switch得到大力加强. Switch留到下篇文章进行讲解 //if 用法 // 1. if后面 ()可以省略 // 2. 判断句...
  • 每天早上七点三十,准时推送干货今天是六一儿童节,各位大朋友们每天也要开开心心哦~最近,阿粉在一个业务改造中,使用三目运算符重构了业务代码,没想到测试的时候竟然发生 NPE 的问题。重构代...
  • 本篇就以比大为例,比小以此类推 max = a &gt;b ? ( a &gt; c ? a : c ) : ( b &gt; c ? b : c ) 或者 max = ( a &gt; b ? a : b ) &gt; c ? ( a &gt; b ? a : b) : c
  • 赋值运算符 、算术运算符、溢出运算符、位运算符、范围运算符、范围运算符、比较运算符、逻辑运算符、nil合并运算符。
  • Swift语法对编译速度的影响 使用Swift初期会惊艳于它强大的表达力,发现原来很啰嗦的逻辑可以用一两句话写完时,工具的强大导致自己会情不自禁的写一些“聪明”的代码。但是Swift毕竟是一个婴儿时期的语言,...
  • Swift4.0 study1 语法 2018-01-19 10:29:45
    swift学习第一天 :语法 1.常量和变量 var 修饰变量 (可以修改) let 修饰常量(不可变) print代理oc中的NSLog输出 2.数据类型转换:Swift是强语言(OC是弱语言)故进行转换时必须指明数据类型,即...
  •  三元运算的特殊在于它是有三个操作数的运算符,它的原型是问题?答案1:答案2。  三元运算符简洁地表达根据问题成立与否作出二选一的操作。如果问题成立,返回答案1的结果; 如果不成立,返回答案2的结果。 ...
  • 【主要内容】 1. 术语 2. 赋值运算符 3. 算术运算符 4. 组合赋值运算符 5. 比较运算符 6. 三目运算符 7. 空合运算符 8. 区间运算符 9. 逻辑运算符 前言: Swift支持绝大部分的C语言运算符,而且
  • Swift 基本运算符 2018-11-06 10:09:03
    &#13; 前言 Swift 语言支持大部分标准 C 语言的运算符,并且改进了...Swift 使用符号 = 来表示赋值运算,如果赋值的对象是一个元组,那么元组内成员的值在赋值操作中是一一对应的。 = 赋值 Swift 赋...
  • 4.Swift 新特性运算符 2016-01-28 16:33:27
    Swift 新特性运算符
  • Swift 高级运算符 2014-06-12 23:31:13
    除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。   不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的。溢出行为会被捕获并报告为...
  • Swift·基本操作符》 2019-09-07 18:27:41
    1、操作符种类 ①一元操作符:只有一个操作数。如-,++,--,总之就是一个数本身的操作,如a++,--a这种操作。 ②二元操作符:操作符出现在两...常见的就是三目运算了,如a?b:c。 2、赋值操作符:=等号 这里说一...
1 2 3 4 5 ... 20
收藏数 394
精华内容 157