加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift流程控制语句

发布时间:2020-12-14 02:04:56 所属栏目:百科 来源:网络整理
导读://// main.swift// Swift流程控制语句//// Created by Goddog on 15/6/24.// Copyright (c) 2015年 Goddog. All rights reserved.//import Foundation//MARK: - 顺序结构//MARK: - 分支结构//MARK: - -if条件语句//注意一定要优先处理范围小的情况 ,下面得
//
//  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结束方法














(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读