首页 > 其他分享 >iOS开发Swift-控制流

iOS开发Swift-控制流

时间:2023-08-24 17:36:58浏览次数:120  
标签:case 语句 控制流 iOS break switch let print Swift

1.For-In循环

//集合循环
let names = ["a", "b", "c"]
for name in names {
    print("Hello, \(name)!")
}
//次数循环
for index in 1...5{
    print("Hello! + \(index)")
}
//不需要值时可以使用  _  来忽略此值
for _ in 1...5{
    print("Hello!")
}

2.while循环

while a < b{  //直到a < b成为false时停止循环
    print(".")
}

3.Repeat-while循环

repeat {
    print(".")
} while a < b    //先执行一次,然后a < b变成false时停止

4.If

if a < b {
    //语句1
} else if a = b {
    //语句2
} else {
    //语句3
}

5.Switch

Switch id {
    case "a":
        print("a")    //不需要加break,不存在隐式贯穿
    case "b":
        print("b")    //每种情况下必须包含语句,否则报错
    default:
        print("其他")
}

(1)复合匹配

switch id {
    case "a", "b":   //如果写不下了可分行书写
        print("c")
    default:
        print("其他")
}

(2)区间匹配

switch id {
    case 1..<5:
        print("1~4")
    case 5..12:
        print("5~11")
    default:
        print("其他")
}

(3)元组匹配

switch somePoint {
    case (0,0):       //从上到下一一匹配,如果多个case都匹配的话只取最前面
        print("0,0")
    case (_,0):
        print("几,0")
    case (0,_):
        print("0,几")
    default:
        print("其他")
}

(4)值绑定匹配

switch somePoint {
    case (let x, 0):
        print("\(x), 0")
    case (0, let y):
        print("0, \(y)")
    case let(x, y):
        print("\(x), \(y)")
}

(5)where

switch yetPoint {
    case let (x, y) where x == y:
        print("\(x) == \(y)")
    case let (x, y) where x == -y:
        print("\(x) == - \(y)")
}

6.控制转移语句

continue, break, fallthrough, return, throw

continue: 停止本次循环,开始下次循环

break: 立即结束整个控制流。可以使用break忽略switch的分支。

fallthrough贯穿: switch中的case加入贯穿,case会穿透到下一个case/ default。

7.带标签的语句

gameLoop: while a < b {
    a++
    switch a {
        case 1:
            continue gameLoop;
        case 2;
            break gameLoop;
        default:
            print("0")
    }
}

8.提前退出(guard)

guard 语句 else {
    //不满足条件语句的时候运行此处代码块
    return/break/continue/throw/调用无返回方法或函数
}
//满足条件语句时运行此处代码块

9.检测API可用性

if #available (iOS 10, macOS 10.12, *) {
    //iOS:平台名称。10:版本号。*:必须有,更高版本。
    //使用10版本API
} else {
    //使用之前版本的API
}

 

标签:case,语句,控制流,iOS,break,switch,let,print,Swift
From: https://www.cnblogs.com/lysboke/p/17654684.html

相关文章

  • iOS开发Swift-集合类型
    集合基本类型:数组Array(有序),集合Set(无序不重复),字典Dictionary(无序键值对)1.数组Arrays(1)数组的表示Array<Element>[Element] (2)创建空数组varsomeInts:[Int]=[]someInts.count//数组长度 (3)带值数组vara=Array(repeating:0.0,count:3)//[0......
  • Swift中指针UnsafePointer的常见用法
    指针类型//基本指针UnsafePointer<T>constT*UnsafeMutablePointerT*//集合指针UnsafeBufferPointerconstT*//指向一个连续已知类型区域,可以看成一个集合,并支持集合操作UnsafeMutableBufferPointerT......
  • iOS开发Swift-字符串与字符
    1.字符串的定义letsomeString="somestringvalue"2.多行字符串的定义(""")letquotation="""有一个人前来买瓜。"这瓜甜吗?"他问。""" 前一个"""前和后一个"""后无换行//前一个"""前和后一个......
  • iOS开发Swift-基本运算符
    1.一元、二元、三元运算符一元单一操作对象-a   !b   c!二元两个操作对象2+3三元三目运算符a?b:c2.赋值运算符(=)leta=10varb=5b=alet(x,y)=(1,2)赋值运算符不返回任何值,所以ifx=y{...}无效。3.算术运算符+  -......
  • Swift-基础语法之变量&常量&元组
    使用 let来声明一个常量,用 var来声明一个变量。常量的值在编译时并不要求已知,但是你必须为其赋值一次。这意味着你可以使用常量来给一个值命名,然后一次定义多次使用varmyVariable=42myVariable=50letmyConstant=42常量或者变量必须拥有和你赋给它们的值相同的类型。不......
  • swift学习笔记之控制流
    控制流:1、if语句letcount=5ifcount>=3{print("yes")}else{print("no")}2、switch语句(1)Swift中不需要在case块中显示地使用break跳出switch。如果想要实现C风格的落入特性,可以给需要的case分支插入fallthrough语句letfruit="apple"switchfruit{case"a......
  • ios 生成一个动态的随机的头像/随机数的操作
               在写项目的时候,可能会遇到这种情况,用到集中随机的颜色,或者头像等,首先:把所需要的图片放进一个数组当中imgsAry=@[@"t1.png",@"t2.png",@"t3.png",@"t4.png",@"t5.png",@"t6.png",@"t7.png",@"t8.png"];然后根据数组的count数生成一个随机......
  • iOS根据文字字数动态确定Label宽高
    我们有时候在写项目的时候,会碰到,意见反馈,还有其他地方,讲座活动细则等需要大篇展示的文本,因为每次服务器返回的内容大小不一,所以需要动态的调整label的宽高:在ios6的时候可以:-(void)creatLabel{//根据文字字数动态确定label宽高_nameLabel=[[UILabelalloc]init......
  • swift学习笔记之---数组、字典、枚举、结构体
    1、数组-Arraylettypes=["none","warning","error"]//省略类型的数组声明letmenbers=[String]()//声明一个空数组menbers.append("six")//添加元素menbers+=["seven"]//添加元素menbers.insert("one"......
  • ios 调用系统应用的方法 应用间跳转的方法
    声明一个私有方法:#pragmamark-私有方法-(void)openUrl:(NSString*)urlStr{//注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮件是“sms://”其中“//”可以省略写成“sms:”(其他协议也是如此)NSURL*url=[NSURLURLWithString:urlStr];UIApplica......