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, 0...Int.max):
        println("\(somePoint.0), \(somePoint.1) 位于第二象限")
    case(Int.min..<0, Int.min..<0):
        println("\(somePoint.0), \(somePoint.1) 位于第三象限")
    case(0...Int.max, Int.min..<0):
        println("\(somePoint.0), \(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):
        println("(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结束方法















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值