前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Swift 基本语法04-"switch"和"for"

Swift 基本语法04-"switch"和"for"

作者头像
用户1890628
发布于 2018-05-10 06:51:23
发布于 2018-05-10 06:51:23
82500
代码可运行
举报
文章被收录于专栏:Objective-CObjective-C
运行总次数:0
代码可运行

一个iOS开发初级菜鸡.png

Swift 基本语法01-Swift简介 Swift 基本语法02-"let"和"var" Swift 基本语法03-"if let"和"guard let" Swift 基本语法05-"String" Swift 基本语法06-数组和字典

1. switch 语法简介

1> switch可以针对任意类型的值进行分支,不再局限整数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
override func viewDidLoad() {
    super.viewDidLoad()
    
    demo(num: "10")
}

func demo(num: String) {
    
    switch num {
    case "10":
        print("优")  // 输出结果:优
    default:
        print("一般")
    }
}

2> switch一般不需要break

OC版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch (num) {
    case 10:
    {
        NSLog(@"优");
    }
        break;
        
    default:
        break;
}

swift 版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch num {
case "10":
    print("优")
default:
    print("一般")
}

3> swift如果要多值,使用,分隔

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
override func viewDidLoad() {
    super.viewDidLoad()
    
    demo(num: "9")
}

func demo(num: String) {
    
    switch num {
    case "10", "9":
        print("优")  // 输出结果:优
    default:
        print("一般")
    }
}

4> 所有的分支至少需要一条指令,如果什么都不干,才用break

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch num {
case "10", "9":
    print("优")
/**
 * 1.如果只写(case "8":)会出现红色错误提示:'case' label in a 'switch' should have at least one executable statement
 * 2.根据提示点击修复,会自行添加'break'
 */
case "8": break
default:
    print("一般")
}
2. for 循环

1> 传统的for循环在swift 3.0已经被取消,i++ / ++i也从swift 3.0被取消

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// C-style for statement has been removed in Swift 3
// '++' is unavailable: it has been removed in Swift 3
for var i = 0; i < 10; i++ {
    
}

Extension: i++会多一个临时变量,i++大多数程序员使用,而++i一般是 C++/C 程序员使用。 现在代码已经对i++++i进行改进,没有性能上的太大区别,我们用的时候,只需要记住i++是后加,++i是先加就可以了(swift里已经取消)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num = i++  等价代码
temp = i
num = temp
i = temp + 1

num = ++i 等价代码
i = i + 1
num = i

2> swift里面的for循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 变量'i'在[0,5)进行循环
// 注意:(0..<5)之间不能乱插入空格,不然会报错
for i in 0..<5 {
    print(i)    // 输出:0,1,2,3,4
}

print("======")

// 变量'i'在[0,5]进行循环
for i in 0...5 {
    print(i)    // 输出:0,1,2,3,4,5
}

3> 范围定义是一个固定的格式,一定要遵守规范

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// CountableRange<Int>
let r1 = 0..<5
print(r1)   // 输出:0..<5

// CountableClosedRange<Int>
let r2 = 0...5
print(r2)   // 输出:0...5

4> for循环反向输出-reversed()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 反向输出 reversed()
for i in (0..<10).reversed() {
    print(i)    // 输出:9,8,7,6,5,4,3,2,1,0
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.05.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
绿城杯-2021 部分WriteUp(晋级)
本次比赛,NonupleBroken一人解出密码方向全部题目,yaoxi&0xK4ws&null-404共同解出RE方向全部题目。欢迎愿意一起打比赛的师傅前来一起战斗!
Timeline Sec
2021/10/20
9490
# DebuGGerrr 战队WRITEUP
summary: 时隔一年再战Ciscn,也算是有所收获吧。本年度中团队共完成题目12道,包含全部分类,个人因为大三考研的事情基本退回了端茶倒水杂项手的状态,不过队友到是有不少收获,在前两届没多少成绩的RE和逆向上同队的师弟也有所发挥
十二惊惶
2024/02/23
1440
纵横杯2020 部分WriteUp
构造httpx://原因:只允许http或者https的协议导致,因此只能代http的读取,但只用http发觉却读取不出来flag,因此添加一个多余x或者其他的变量绕过
Timeline Sec
2021/01/05
6780
纵横杯2020 部分WriteUp
长安“战疫”2022 部分WriteUp (第四名)
本次比赛取得第四名!拿到一个一血,密码方向由NonupleBroken全部解出,2022年首战告捷!
Timeline Sec
2022/02/11
1.2K0
长安“战疫”2022 部分WriteUp (第四名)
ISCC 2018 Writeup
ISCC 2018 CTF中,一些题目还是很不错的。但是需要吐槽的就是这个积分机制,私以为一次性放出所有题目而且反作弊机制完善的情况下动态积分这个方法很好。但是,战线太长还是不要用动态积分。不过话说回来,战线长也是ISCC的传统吧。最后祝ISCC越办越好!也希望我们的Writeup能对大家有所帮助吧! 赛事的运维人员还是很nice的
xfkxfk
2018/07/24
2.4K0
ISCC 2018 Writeup
2023年西湖论剑
图片 前言 图片 WP WEB 扭转乾坤 大写一个F即可 图片 得到flag DASCTF{407a13a21a6b85b1236b003479468c82} unusual php phpi
故里[TRUE]
2023/04/21
8200
2023年西湖论剑
[SCTF 2021] pwn部分题解
用纯gadget切换到32位模式绕过沙箱限制打开文件,然后切回64位模式用alarm侧信道爆破flag字符
赤道企鹅
2022/08/01
4970
网鼎杯第一场writeup
web facebook 首先访问robots.txt 存在备份泄露,把user.php.bak下载下来 <?php class UserInfo { public $name = "";
安恒网络空间安全讲武堂
2018/09/21
1.5K0
网鼎杯第一场writeup
ISCC2022
走私成功,但是显示本地才可以看到,那么添加一下secr3t_ip: 127.0.0.1
故里[TRUE]
2023/04/19
1.2K0
ISCC2022
CTFShow萌新赛-WriteUp
程序有puts函数可以拿来泄露libc的基地址,然后只要利用ROPgadget找到程序中的pop rdi;ret代码段保持堆栈平衡使程序返回到主函数以继续运行,从而执行libc中的system函数即可。
偏有宸机
2020/11/04
1.2K0
CTFShow萌新赛-WriteUp
[强网杯2021-线上赛] Pwn方向writeup
堆有rwx权限,下标溢出写got函数为堆地址,在两个堆块上拼接shellcode调用read读入shellcode进行orw拿flag
赤道企鹅
2022/08/01
6610
HCTF2018 WriteUp
不断fuzz,发现\u0075nion在json_decode后,会变成union,从而达到bypass的目的。 脚本:
ChaMd5安全团队
2018/12/12
1.2K0
HCTF2018 WriteUp
MTCTF-2022 部分WriteUp
本次比赛主力输出选手Article&Messa&Oolongcode,累计解题3Web,2Pwn,1Re,1Crypto
Timeline Sec
2022/10/05
9060
MTCTF-2022 部分WriteUp
第五届世界智能大会[津门杯]
linux中|管道符的作用 | 管道符的作用是 把 管道符左边的的输出 当做右边命令后面待处理的结果 例如: ls -lha ~ | more| grep a >haha.txt
故里[TRUE]
2023/04/19
8850
第五届世界智能大会[津门杯]
FireShell CTF WriteUp
招新小广告 ChaMd5 ctf组 长期招新 尤其是reverse+pwn+合约的大佬 欢迎联系admin@chamd5.org Web Bad Injection 解题思路 任意文件下载: url
ChaMd5安全团队
2019/03/07
1.5K0
贵阳大数据及网络安全精英对抗赛-解题赛 WP
这网站打开一直重定向,使用request库指定allow_redirects=False或者使用httpx库都可以成功访问
yulate
2023/05/09
1.3K0
贵阳大数据及网络安全精英对抗赛-解题赛 WP
[DASCTF 2021.03] Pwn方向完全writeup
周末打了一下DASCTF,基本都是菜单题的堆利用,除了有一题打safe-linking比较新,其它都比较常规。
赤道企鹅
2022/08/01
5540
RCTF2020 部分Writeup
首先show函数里有一个数组越界,输入-5可以泄露从$rebase(0x4008)开始0x996个bytes
Timeline Sec
2020/06/10
1.2K0
RCTF2020 部分Writeup
津门杯2021 部分WriteUp
ZmxhZ3tsNURHcUYxcFB6T2IyTFU5MTlMTWFCWVM1QjFHMDFGRH0=
Timeline Sec
2021/06/25
9450
2019红帽杯 writeup
可以rce,在博客上找到的⼀条5.2.0的链,phar反序列化,上传phar.xml(改后缀),然后xxe⽤
ChaMd5安全团队
2020/01/19
1.9K0
相关推荐
绿城杯-2021 部分WriteUp(晋级)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档