前端之家收集整理的这篇文章主要介绍了
Swift流程控制语句,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//
// main.swift
// Swift流程控制语句
//
// Created by Goddog on 15/6/24.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
import Foundation
//MARK: - 顺序结构
//MARK: - 分支结构
//MARK: - -if条件语句
//注意一定要优先处理范围小的情况 ,下面得到“中年人”
var age = 45
if age > 60
{
println("老年人")
}
else if age > 40
{
println("中年人")
}
else if age > 20
{
println("青年人")
}
//MARK: - -switch分支语句
/**
1.任意一个case可以紧跟多个值,2.任意一个case执行完成之后会终止无需break语句,3.每一个case必须包含一条语句
4.用fallthrough惯穿,即继续往下走,5.也可以用break立刻结束
*/
var score = "c"
switch score
{
case "A","a":
println("优秀")
case "B","b":
println("良好")
case "C","c":
println("中等")
case "D","d":
println("及格")
case "F","f":
println("重考")
default:
println("输入有误")
}
//switch的范围匹配
var myscore = 98
switch myscore
{
case 90...100:
println("优秀")
case 80...89:
println("良好")
case 70...79:
println("中等")
case 60...69:
println("及格")
case 0...60:
println("不及格")
default:
break
}
//switch的元组匹配
//其中_是代表匹配所有可能的值
var somePoint = (x:1,y:-4) //代表第四象限
switch somePoint
{
case (0,0):
println("(0,0)位于原点")
case(_,0):
println("(\(somePoint.0),0)位于x轴上")
case(0,_):
println("0,\(somePoint.1)位于y轴上")
case(0...Int.max,0...Int.max):
println("\(somePoint.0),\(somePoint.1) 位于第一象限")
case(Int.min..<0,\(somePoint.1) 位于第二象限")
case(Int.min..<0,Int.min..<0):
println("\(somePoint.0),\(somePoint.1) 位于第三象限")
case(0...Int.max,\(somePoint.1) 位于第四象限")
default:
break
}
//注意:范围越小的case块应该放在最前面
//case的值绑定:switch表达式的值绑定到临时的变量或常量,无需default结束了
var hisscore = 404
switch hisscore
{
case 91...100:
println("优秀")
case 80...89:
println("良好")
case 70...79:
println("一般")
case 60...69:
println("及格")
case 0..<60:
println("挂科")
case let scor:
println("输入的\(scor)有误")
}
var somesPoint = (x : 1,y : 0)
switch somesPoint
{
case (0,0):
println("(0,0)位于原点")
case (var x,0):
println("位于x轴上的\(x)")
case(0,var y):
println("位于y轴上的\(y)")
case(var x,var y):
println("位于其他点\(x),\(y)")
}
//case的where子句
var somesPionts = (x : -1,y : 4)
switch somesPionts
{
case (0,0)位于原点")
case (var x,0):
println("该点位于x轴上,其x值是:\(x)")
case (0,var y):
println("该点位于y轴上,其y值是:\(y)")
case var (x,y) where x>0 && y>0:
println("\(x),\(y)点位于第一象限")
case var (x,y) where x<0 && y>0:
println("\(x),\(y)位于第二象限")
case var (x,y) where x<0 && y<0:
println("\(x),\(y)位于第三象限")
case var (x,y) where x>0 && y<0:
println("\(x),\(y)位于第四象限")
default:
break
}
//MARK: -循环结构
//1.while循环
var count = 0
while count < 10
{
println("count值是:\(count)")
count++;
}
println("循环完成")
//2.do..while循环
var counts = 1
do
{
println("counts的值是:\(counts)")
counts++
}
while counts < 10
//for循环
for var count=0; count<10;count++
{
println("count:\(count)")
}
//for循环以外的地方使用变量的值
var tmp = 0
for var i = 0; i < 10; i++
{
println("i的值是:\(i)")
tmp = i
}
println("结束循环")
//for - in循环:专门遍历字符串、范围、序列、集合等包含元素
var name = "huxu"
for n in name
{
println(n)
}
//如果根据字符串长度确定循环次数,不要在循环体内遍历字符,用下划线_代替常量名
for _ in name
{
println("1")
}
println()
//变量范围
var max = 5
var result = 1
for num in 1...max
{
result *= num
}
println("结果是:\(result)")
//嵌套循环
for var i=0;i<5;i++
{
for var j=0;j<3;j++
{
println("i的值是:\(i),j的值是:\(j)")
}
}
//控制循环结构
//Swift提供来continue和break来控制循环结构,return可以结束整个方法
for var i=0;i<10;i++
{
println("i的值是:\(i)")
if i == 2
{
//执行循环结束语句
break
}
}
//break不仅可以结束其所在循环,还可以直接结束其外层循环,在break后加一个标签
//外层循环,outer作为标志符
outer: for var i=0;i<5;i++
{
//内循环
for var j=0;j<3;j++
{
println("i的值是:\(i),j的值是:\(j)")
if j==1
{
//跳出outer标签所标致的循环
break outer
}
}
}
//使用continue忽略本次循环剩下的语句
for var i=0;i<3;i++
{
println("i的值是\(i)")
if i==1
{
//忽略下面的语句
continue
}
println("没有打印哪个呢")
}
println("continue结束")
//continue后可以紧跟一个标签
//用return结束方法