Swift 程序流程控制

Swift采用类同c语言的流程控制语句,if, for, for-in,  while,  do-while , switch, break, continue .Swift语言的Switch语句自动添加了break效果,这样你可以不用没个case后面再写break.同c语言不同,swift语言的if for while 等,没有括号来括表达式

1: if 语句。if语句只对逻辑值检测。这里不同于c语言的if语句是检测是否 非0.

var bFlag:Bool = true
if bFlag {
    println("\(bFlag)")
}

2: for语句,for语句的用法类似于c语言for语句

 var index:Int = 0
for index; index < 5; index++ 
{
     println("\(index)\n")  
}

3: for-in语句用于多集合的遍历

for item in 1..5 {
    println("\(item) ")
}

如果不使用集合元素可以用 _忽略

var iCount : Int = 1
let iBase : Int = 2
for _ in 1...3 {
  iCount *=  iBase
}
println("\(iCount)")

用for-in 遍历数组

let array = [1,3,5,7]
for item in array {
    println("\(item) ")
}

for-in 遍历字典 

let dic  = ["key1":"value1", "key2":"value2", "key3":"value3"]

for (key, value) in dic {
    println("key:\(key) value:\(value) \n")
}

4:while循环。while循环判断逻辑值

复制代码
var bFlag:Bool = true
var iCount:Int = 0
while bFlag
{
    iCount++
    if iCount > 3 {
        bFlag = false
    }
    println("\(iCount)\n")
}
复制代码

5: do-while 。while/ do-while 循环控制流程是和c语言一样的,只是他们的判断是逻辑值而不是c语言那样的 !0 值。

复制代码
var bFlag:Bool = true
var iCount:Int = 0
do
{
    iCount++
    if iCount > 3 {
        bFlag = false
    }
    println("\(iCount)\n")
}while bFlag
复制代码

6:switch 语句。switch语句必须是完备的语句,defualt语句必须在所有case语句的最后。每个case后switch语句会自动break。case 块中不允许空语句。一个case条件可以使用范围匹配。同时case条件可以使用元组匹配,而且元组可以用 "_" 表示任何值

复制代码
let iCount :Int = 3
switch iCount{
case 1...6:
    println("in")
case 7..9:
    println("out")
default:
    println("def")
}
复制代码

 

复制代码
let character: Character = "c"
switch character{
case "a", "b", "c" :
    println("xx")
    case "d", "e":
    println("oo")
default:
    println("def")
}
复制代码

 

复制代码
var somePointe = (1,2)
switch somePointe {
case(0, 0):
    println("0.0")
case(_, 2):
    println("_, 2")//_匹配 进这句
case(1, 2):
    println("1, 2")//不会进,前面已经bread
default:
    println("def")
    
}
复制代码

 

fallthrough  关键字是在switch语句中去除break,让代码可以继续下个语句。
 
posted @   酱酱爱  阅读(503)  评论(0编辑  收藏  举报
编辑推荐:
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
阅读排行:
· 终于决定:把自己家的能源管理系统开源了!
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 实现windows下简单的自动化窗口管理
· 【C语言学习】——命令行编译运行 C 语言程序的完整流程
点击右上角即可分享
微信分享提示