Swift基础之控制语句
1. 步骤和基础1一样操作
2. 代码
1 // 2 // ViewController.swift 3 // SwiftLesson2 4 // 5 // Created by 薛雨仑 on 14-10-2. 6 // Copyright (c) 2014年 Dylan. All rights reserved. 7 // 8 9 import UIKit 10 11 class ViewController: UIViewController { 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 16 /** 17 循环结构:for、for-in、while、do-while 18 19 选择结构:if、switch 20 21 注意:这些语句后面一定要跟上大括号{},在C语言中不是必须的 22 23 */ 24 25 for i in 1...10 { 26 println(i) 27 } 28 29 for i in 1..<10 { 30 println(i) 31 } 32 33 // 如果用不到范围中的值 可以使用下划线忽略 34 for _ in 1...5 { 35 println("------") 36 } 37 38 /** 39 在Swift中,不需要在每一个case后面增加break,执行完case对应的代码后默认会自动退出switch语句 40 在Swift中,每一个case后面必须有可以执行的语句 41 42 case的多条件匹配 43 1个case后面可以填写多个匹配条件,条件之间用逗号,隔开 44 45 case的范围匹配 46 case后面可以填写一个范围作为匹配条件 47 */ 48 49 let grade = "b" 50 switch grade { 51 52 case "a"..."z": 53 println("great") 54 case "b": 55 println("good") 56 case "c", "d", "e": 57 println("soso") 58 default: 59 println("----") 60 } 61 62 // case还可以用来匹配元组。比如判断一个点是否在右图的蓝色矩形框内 _ 来忽略值 63 let point = (1, 1) 64 switch point { 65 case (0, 0) : 66 println("这个点在原点上") 67 case (_, 0) : 68 println("这个点在x轴上") 69 case (0, _) : 70 println("这个点在y轴上") 71 case (-2...2, -2...2) : 72 println("这个点在矩形框内") 73 default: 74 println("这个点在其他位置") 75 } 76 77 /** 78 case的数值绑定 79 在case匹配的同时,可以将switch中的值绑定给一个特定的常量或者变量,以便在case后面的语句中使用 80 */ 81 82 let point_1 = (10, 20) 83 switch point_1 { 84 case (let x, 0): println(x) 85 case (0, let y): println(y) 86 default:println("= = = ") 87 } 88 89 /** 90 where 91 switch语句可以使用where来增加判断的条件。比如判断一个点是否在右图的绿线或者紫线上 92 */ 93 94 var point_2 = (10, -10) 95 switch point_2 { 96 case let (x2, y2) where x2 == -y2: println("这个点在紫线上") 97 default: println("这个点不在这2条线上") 98 } 99 100 /** 101 fallthrough 接着执行 102 */ 103 104 var a = 4 105 switch a { 106 case 1: println("1") 107 fallthrough 108 case 2: println("2") 109 default: println("3") 110 } 111 112 /** 113 标签 明确指定退出哪一个循环 114 */ 115 116 group: 117 for i in 1...3{ 118 for j in 1...2 { 119 println("1") 120 121 if j == 2 { 122 break group 123 } 124 } 125 println("2") 126 } 127 128 } 129 130 override func didReceiveMemoryWarning() { 131 super.didReceiveMemoryWarning() 132 } 133 134 135 }
_iOS.Dev GoodMood.
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】园子的不务正业:向创业开发者推荐「楼盘」- 杭州云谷中心
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】天翼云爆款云主机2核2G限时秒杀,28.8元/年起!立即抢购
· Ribbon LoadBalancer: 开源的客户端式负载均衡框架
· EF Core:再谈普通实体关系与 Owned 关系的区别
· C++20新增属性[[no_unique_address]]详解
· 线上频繁FullGC?竟是Log4j2的这个“特性”坑了我
· 聊一聊 .NET 中的 CancellationTokenSource
· 刚刚 Java 25 炸裂发布!让 Java 再次伟大
· 一款基于 .NET 开源美观、功能丰富的串口调试工具
· .NET 10 是微软 AI 战略的技术承重墙
· Runtime Async - 步入高性能异步时代
· AI 开发者工具 TOP 榜:9 大分类 + 20种工具