美文网首页Swift一步步学习
Swif学习之流程控制(if, switch,for,guard

Swif学习之流程控制(if, switch,for,guard

作者: coderhlt | 来源:发表于2017-07-02 23:45 被阅读51次

说明

以前一直用的是oc最近才开始学习swif,特记录一下swif的学习,主要记录下oc与swif的区别。

  • 导入框架
    OC导入框架: #import <UIKit/UIKit.h>
import UIKit
  • 变量初始化
    OC定义标识符: int a = 20; a = 10;
//定义格式: let/var 标识符名称 : 标识符类型 = 赋值
var a : Int = 20
a = 10
let b : Double = 3.14
  • 关于分号
print("hello world")//结尾的分号可以省略
print(1);print("123');//如果一行中有多条语句,则不可省略
  • 方法的调用
// 在swift中调用方法,统一使用 点语法
let rect = CGRect(x: 0, y: 0, width: 100, height: 100)
let view : UIView = UIView(frame: rect)
view.addSubview(btn)
  • Swift枚举类型:
// 如果可以根据上下文语法推断出该枚举的类型可以直接 .具体类型
let btn : UIButton = UIButton()
btn.setTitle("按钮", for: .normal)
  • 关于隐式转换
// swift没有隐式转换,因此两种不同类型的变量运算时,必须先转换成同一类型
let m = 20
let n = 10.5
// let result = m + n 错误写法
let result1 = Double(m) + n// 将Int类型转成Double: Double(标识符)
let result2 = m + Int(n)// 将Double类型转成Int : Int(标识符)
let a : Double = 2.44
let b : CGFloat = 3.55
let result = a + Double(b) 
  • if语句
    a. if后面的()可以省略掉
if a > 0 {
    print("a大于0")
}

b. 没有非0(nil)即真

if a  {错误语法
    print("a大于0")
}
if a != 0 {//必须这样,swift没有非0(nil)即真 
    print("a不等于0")
}
  • switch语句
    a.switch后面的()可以省略
switch sex {
case 0:
    print("男")
    break
case 1:
    print("女")
    break
default:
    print("其它")
    break
}

b. case语句结束时,可以不加break

switch sex {
case 0:
    print("男")
case 1:
    print("女")
default:
    print("其它")
}

c.在swift中,switch后面case可以判断多个条件

switch sex {
case 0, 1:
    print("正常人")
default:
    print("非正常人")
}

d.如果希望case结束时,产生case穿透.case结束时,加上fallthrough

case 0,1:print("男")
     fallthrough
case 2:print("女1")
default:print(1)

e.判断字符串

let  a= "123"
case "1":
  print("1")
case "2":
   print("2")
case "3":
  print("3")
case "123":
  print("123")
default:
    print("不合理的操作符")
}

f.判断区间类型

let score = 88
switch score {
case 0..<60:
    print("不及格")
case 60..<80:
    print("及格")
case 80..<90:
    print("良好")
case 90...100:
    print("优秀")
default:
    print("不合理的分数")
}
  • for语句:
    // Swift中for循环现在只支持区间遍历
for (var i = 0; i < 10; i++) {
    print(i)
}//swif3.0之后不再支持,现在这样写会报错
for i in 0..<10 {//区间遍历
    print(i)
}

// 在swift开发中,如果一个变量/常量暂停不会使用,那么可以使用_来代替

for _ in 0..<10 {
    print("hello world")
}
  • guard语句
    guard <#condition#> else // 如果条件成立,者会执行后面的代码
    {
    <#statements#> // 如果条件不成立,则会执行{}中的语句,并且{}中必须跟上
    }
    //假设情景:去网吧上网
    let age = 20
    let a = 1 //a=0表示没带钱
    let b = 0 //b=0表示没带身份证
    func online(age : Int){
    if age>18 {
    if a==1 {
    if b==1 {
    print("可以上网")
    }else{
    print("回家拿身份证去")
    }
    }
    else{
    print("回家拿钱去")
    }
    }else{
    print("等你满18岁再来")
    }
    }
    online(age: age)
    以上情景使用if层层嵌套,我们可以使用guard条件语句代替显得更优雅
func oneline(age:Int){
    guard age>18 else { // 如果条件成立,者会执行后面的代码块
    print("等你满18岁再来") // 如果条件不成立,则会执行{}中的语句,并且{}中必须跟上
    return
    }
    guard a==1 else {
        print("回家拿钱去")
        return
    }
    guard b==1 else {
        print("回家拿身份证去")
        return
    }
}
oneline(age: age)

相关文章

  • Swif学习之流程控制(if, switch,for,guard

    说明 以前一直用的是oc最近才开始学习swif,特记录一下swif的学习,主要记录下oc与swif的区别。 导入框...

  • Swift 2.0 学习笔记 5_控制流

    //: 控制流 // 循环(for, while) // 条件(if, guard, switch) // 控制转...

  • SwiftUI 关键词解析

    1、guard 控制流语句 guard类似于if-else、switch 2、as! as? 2.1 ? ...

  • 6.控制流

    控制流语句:while、repeat-while、for-in、switch、if、guard、where 控制转...

  • Swift教程之控制流

    控制流 Swift包含很多控制流语句:while循环、if、guard、switch和for-in循环。 For-...

  • Swift语法--控制流

    控制流 while、if、guard、switch For-in循环 While循环 while repeat-w...

  • Swift3.0控制流(Control Flow)

    Swift提供了多样的流程控制结构,比如"while"、"for"循环,"if"、"switch"、"guard"...

  • 五、控制流

    控制流主要关键字 while、repeat-while 循环 if、guard、switch 基于特...

  • 2018-07-09

    控制流 Swift提供了各种控制流程语句。这些包括while循环多次执行任务; if,guard以及switch基...

  • 五.控制流程/Control Flow

    Swift提供了各种控制流程语句.这些包括: while多次执行任务的循环; if,guard以及switch基于...

网友评论

    本文标题:Swif学习之流程控制(if, switch,for,guard

    本文链接:https://www.haomeiwen.com/subject/gxwocxtx.html