/*
任何程序都有顺序分支循环三种控制语句,其中默认的是顺序
分支语句:if 和 switch
循环语句:while do。。while for for。。in
跳转语句:break continue fallthrough return
*/
/*
if结构
表达式:
if 条件表达式 { 语句 }
if 条件表达式{语句}
else {}
if 条件表达式 {}
else if 条件表达式 {}
else {}
*/
var score = 80
if score<60 &&score>50 {println("不及格")}
else if score<50 && score>20 {println("渣渣")}
else {println("艹!回家种田!")}
/*
switch语句
开关语句,提供了多分支结构
在swift中,switch语句可以使用整数,浮点数,字符,字符窜,元祖,等类型,而且他的值可以使离散的,也可以使连续的范围
在swift中,不用可以得去添加break
switch 条件表达式
{
case 值1:语句
case 值1:语句
case 值1:语句
...
default:语句
}
*/
switch score
{
case 58.5:
println("抵死")
case 59,58,56:
println("多个离散范围")
case 72..<99:
println("连续的范围")
default:println("还好吧")
}
var description = "干的不错"
switch description
{
case"差劲极了":
println("差劲极了")
case"干的不错":
println("干的不错")
default:println("error")
}
//元祖匹配
var student = (id:"2011136215",name:"vincent",age:27,score:85)
switch student {
case (_,_,18...20,90...100):
println("age = \(student.age)");
case (_,_,21...25,80...89):
println("age = \(student.age)");
case (_,_,26...30,70...79):
println("age = \(student.age)");
case (_,_,31...35,60...69):
println("age = \(student.age)");
default:
println("not found")
}
//值绑定
switch student {
case (_,_,var age,90...100):
if age > 20{
println("age = \(student.age)");
}else {
}
case (_,_,var age,80...89):
if age > 20{
println("age = \(age)");
}else {
}
case (_,_,26...30,80...89):
println("age = \(student.age)");
case (_,_,31...35,60...69):
println("age = \(student.age)");
default:
println("not found")
}
/*
select * from userinfo where uAge > 20
在绑定值的情况下,可以在case中使用where语句,进行条件过滤
类似SQL语句
*/
//在只绑定的情况下可以用where语句(sql)
switch student {
case (_,_,var age,90...100):
if age > 20{
println("age = \(student.age)");
}else {
}
case (_,_,var age,80...89)where age > 20:
println("age = \(student.age)");
case (_,_,26...30,70...79):
println("age = \(student.age)");
case (_,_,31...35,60...69):
println("age = \(student.age)");
default:
println("not found")
}
/*
while 结构
while 循环条件{ 循环体}
*/
var i = 0
var sum = 0
while i < 100 {
sum+=i
i++
}
/*
do...while
*/
i=0;
do {
sum += i;
i++ ;
} while i < 100
/*
for
*/
for var j = 0;j < 100; j++ {
sum+=j
}
//for ; ; {println("ss")} 无限循环
/*
for in
次循环结构多用于集合的遍历
次循环结构的查询性能优于以上三种循环
*/
//常用
var array = [1,2,3,4,5,6,7,8,9]
for item in array {
println(item)
}
/*
return 抛出返回值
break
continue
*/
/*
fallthrough 用在switch 贯通,switch的默认有break;利用fallthrough来连通连续输出
*/