Swift教程之条件语句

原创 2015年07月10日 11:34:10
//MARK:----if条件语句
//if
let isOK = true
if isOK
{
    print("我好了")
}
else
{
    print("我没好")
}
//三元运算符
var sex = isOK ? "男生":"女生"
print(sex)

//MARK:----switch条件语句
//当匹配的 case 分支中的代码执行完毕后,程序会终止switch语句
let charA: Character = "a"
switch charA
{
    case "a", "A":  //如果想匹配多个条件,可以在一个case里面把多个条件用(,)隔开
        print("The letter a") //每一个 case 分支都必须包含至少一条语句
    case "A":
        print("The letter A")
    default:
        print("default")
}

//case 分支的模式也可以是一个值的区间范围
//使用范围匹配来输出任意数字对应的自然语言格式
let count = 3_000_000
var Str: String
switch count
{
    case 0:
        Str = "没有"
    case 1...9:
        Str = "个位"
    case 10...99:
        Str = "十位"
    case 100...999:
        Str = "百位"
    case 1000...9999:
        Str = "千位"
    default:
        Str = "万以上"
}
print("\(count)是\(Str)数")
// 输出 "There are millions and millions of stars in the Milky Way.

//用下划线(_)来匹配所有可能的值。
//使用一个(Int, Int)类型的元组来分类下图中的点(x, y)
let point1 = (0, 3)
switch point1
{
    case (0, 0):
        print("(0, 0)在原点")
    case (_, 0):
        print("(\(point1.0), 0) 在X轴上")
    case (0, _):
        print("(0, \(point1.1))在Y轴上")
    case (-2...2, -2...2):
        print("(\(point1.0), \(point1.1))在范围内")
    default:
        print("(\(point1.0), \(point1.1))范围之外")
}

//值绑定(Value Bindings)
//在一个(Int, Int)类型的元组中使用值绑定来分类下图中的点(x, y)
let point2 = (2, 3)
switch point2
{
    //此时x只是一个占位符,用来临时的获取switch条件中的一个或多个值
    case (let x, 0):
        print("在X轴上,值为 \(x)")
    case (0, let y):
        print("在Y轴上,值为 \(y)")
    case let (x, y):
        print("在(\(x), \(y))点")
}
// 输出 "在(2, 3)点”

//MARK:----中断语句
//控制传递语句(Control Transfer Statements)
//continue
//停止本次循环,重新开始下次循环
let puzzleInput = "great minds think alike"
var puzzleOutput = ""
for character in puzzleInput.characters
{
    switch character
    {
        case "a", "e", "i", "o", "u", " ":
            continue
        default:
            //输出字母
            puzzleOutput.append(character)
    }
}
print(puzzleOutput)

//Break
//循环语句中的 break
//中断循环体
for index in 0..<5
{
    if index == 2
    {
        continue
//      break
    }
    print("index: \(index)")
}
//Switch 语句中的 break
//中断switch代码块
let numberSymbol: Character = "三"
var possibleIntegerValue: Int = 0
switch numberSymbol
{
    //拉丁语、阿拉伯语、中文、泰语
    case "1", "١", "一", "๑":
        possibleIntegerValue = 1
    case "2", "٢", "二", "๒":
        possibleIntegerValue = 2
    case "3", "٣", "三", "๓":
        possibleIntegerValue = 3
    case "4", "٤", "四", "๔":
        possibleIntegerValue = 4
    default:
        break
}
print("The integer value of \(numberSymbol) is \(possibleIntegerValue).")
// 输出 "The integer value of 三 is 3.

//贯穿(Fallthrough)
//一般用于满足多个条件
//Swift 中的switch,执行一个case之后,想接着往下执行可以用fallthrough关键字
let number = 5
var description = "数字\(number)是"
switch number
{
    case 2, 3, 5, 7, 11, 13, 17, 19:    //质数
        description += "一个质数"
        fallthrough
    default:
        description += "也是一个整数"
}
print(description)
// 输出 "数字5是一个质数也是一个整数"

//标签的语句(Labeled Statements)
/*
    表明break或continue哪个循环体,循环嵌套的时候使用
*/

//根据分数评等级,超过100分跳过,遇到负数停止
var score = [96, 83, 43, 101, 66, 70, -5, 99]
//外层for循环体First
First: for s in score
{     //定义标签First
    switch s/10
    {
        case 10:
            continue First  //使用标签,中断本次for循环
        case 9:
            print("\(s)分为优秀")
        case 8:
            print("\(s)分为良好")
        case 6...7:
            print("\(s)分为中等")
        case 0:
            break First     //使用标签,终止for循环
        default:
            print("\(s)分为没及格")
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

【Unity3D自学记录】Unity3D插件之EasyTouch简单用法

EasyTouch使用 EasyTouch 目录[-] 一、效果图二、操作步骤1.官方文档上的步骤2.翻译一下以上的步骤3.根据官方的这些提示,自己来做一个属于自己的人物遥感控制 ...
  • hackdjh
  • hackdjh
  • 2014年07月07日 11:25
  • 1183

Swift 条件编译

在 C 系语言中,可以使用 #if或者 #ifdef 之类的编译条件分支来控制哪些代码需要编译,而哪些代码不需要。Swift 中没有宏定义的概念,因此我们不能使用 #ifdef 的方法来检查某个符...
  • happyrabbit456
  • happyrabbit456
  • 2015年02月25日 14:34
  • 1125

[swift实战入门]手把手教你编写2048(一)

苹果设备越来越普及,拿着个手机就想捣鼓点啥,于是乎就有了这个系列,会一步一步教大家学习swift编程,学会自己做一个自己的app,github地址:https://github.com/scarlet...
  • silk_bar
  • silk_bar
  • 2016年04月09日 23:17
  • 5897

VTK教程之十二&nbsp;可视化基础算法-几…

因为数量数据是
  • woashizhangsi
  • woashizhangsi
  • 2014年12月12日 09:41
  • 834

jQuery EasyUI使用教程之创建复杂的树网格

树网格可以展示有限空间上附带的多列和复杂数据电子表格。本教程将演示如何将表格数据排列在分割的网格和多行表头中,以便组织共同的数据。 jQuery EasyUI最新试用版下载请猛戳>> ...
  • AABBbaby
  • AABBbaby
  • 2016年07月20日 09:51
  • 404

VTK教程之十三&nbsp;可视化基础算法-位…

  位移图主要描
  • woashizhangsi
  • woashizhangsi
  • 2014年12月12日 09:38
  • 546

Swift教程之扩展

import Foundation //扩展就是添加新功能。扩展和 Objective-C 中的分类(categories)类似。【不过与Objective-C不同的是,Swift 的扩展没有名字。】...
  • pengyuan_D
  • pengyuan_D
  • 2015年07月10日 11:26
  • 276

VTK教程之十一&nbsp;可视化基础算法-方…

矢量是有大小和
  • woashizhangsi
  • woashizhangsi
  • 2014年12月12日 09:41
  • 467

Swift教程之函数

import Foundation //func 函数名(形参: 形参类型) -> 返回类型 //MARK:----------1.函数定义----------- //单参数 func sayHel...
  • pengyuan_D
  • pengyuan_D
  • 2015年07月10日 11:41
  • 291

Unity教程之-Unity Attribute的使用总结

Attribute是C#的功能,在Unity中可以使用Attribute来给变量和方法增加新的特性或者功能。 举两个例子,在变量上使用[SerializeFiled]特性,可以强制让变量进行序列化,...
  • SuperMode
  • SuperMode
  • 2016年10月16日 17:01
  • 521
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift教程之条件语句
举报原因:
原因补充:

(最多只允许输入30个字)