swift入门教程系列7-控制流

控制流

总的来说使用方式和C,C++,Objective C等差不多

这里讲解可能会少一点,大家实际写点代码就会用了,很简单,可以侧重看看switch,swift中的swift功能更多一些

有一点特别要注意的是,swift中的条件表达式的结果一定是Bool类型的

也就是说

var a  = 19

if a{

}

这样的表达式是不对的,因为a是Int类型

1、if

常用的if也就三种

if bool{
}

if bool{
}
else{
}

if bool{
}
else if{
}
else{
}

2、for

swift中 for循环分为for 和for in两种

对于for in

这里的index隐式被声明为常量,不需要提前声明

for index in 1...10{
    println(index)
}

如果无需index的具体值,可以用下划线代替

for _ in 1...10{
    println("hello hwc")
}

for in 最常用的还是用来遍历数组,字典

var dictionary = [1:"one",2:"two",3:"three"]
for (key,value) in dictionary{
println("\(key)->\(value)")
}

当然,也可以用for的条件递增

for var index = 0;index < 10;++index{
    println(index)
}

3、while

while condition{
    statements
}
var i = 0
while  i < 10{
   println(i)
   i++
}

do{
}while condition
var i = 0
do{
    println(i)
    i++
}while i < 10

4 switch

switch temp{
case value1:
	println(value1)
case value2:
	println(value2)
defalut:
	println(default)
}

swift中的switch语句可以不用break,会自动跳出

swift中,每个case语句至少要执行一个局域

所以

case value1:

case value2:

println("")

是会报错的

在swfit中,如果想要匹配多个值,

switch oenValue{
    case value1:
println("1")
    case value2...value4:
println("234")
    default:
        println("default")
}

在swift中,switch可以直接匹配元组,这个十分方便

元组中可以是区间,也可以用_匹配任何值

case (0,0):匹配(0,0)

case (0..3,1)匹配(0,1)(1,1)(2,1)

case (_,1)匹配任何(Int,1)

举个例子

let somePoint = (1, 1)
switch somePoint {
case (0, 0):
println("(0, 0) is at the origin")
case (_, 0):
println("(\(somePoint.0), 0) is on the x-axis")
case (0, _):
println("(0, \(somePoint.1)) is on the y-axis")
case (-2...2, -2...2):
println("(\(somePoint.0), \(somePoint.1)) is inside the box")
default:
println("(\(somePoint.0), \(somePoint.1)) is outside of the box")
}

case的分支语句可以通过where增加额外判断

let somePoint = (1, 1)
switch somePoint {
	case let(x,y) where x == y:
		println("x is equal to y")
	default:
		println("x is not equal to y" )
}

5 continue break fallthrough return 

continue,终止循环体中的这次操作,继续下一次操作

for index in 1...10{
   if index % 2 == 1{
	continue
   }
   println(index)
}

break,立即结束当前控制流的执行

let x = 10
switch x
{
    case 10:
	println("right")
    default:
        break
}

fallthrough贯穿,从swift中的一个case贯穿到下一个case

swift中,默认在一个case结束后,不管有没有break,都会跳出switch语句,如果想要像其他语言一样,则使用fallthrough关键字

let x = 0
switch x
{
    case 0:
println(0)
fallthrough
    case 1:
println(1)
    case 2:
println(2)
    default:
    println("defalult")
}

执行会发现输出0 1

带标签的语句

当我们有多层循环,或者多层switch的时候,如何知道一个continue或者break是终止那一层控制流呢?Swift提供了一种方便的方式:带标签的语句

var x = 1
var y = 1
firstLoop:while x < 5{
	secondLoop:while y < 6{
  		//continue firstLoop or continue secondLoop
	}
}

时间: 2024-08-24 15:42:09

swift入门教程系列7-控制流的相关文章

SeaJS入门教程系列之使用SeaJS(二)

SeaJS入门教程系列之使用SeaJS(二) 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-03我要评论 这篇文章主要介绍了SeaJS入门教程系列之使用SeaJS,着重介绍了SeaJS的使用方法.关键方法的使用等,需要的朋友可以参考下 下载及安装 要在项目中使用SeaJS,你所有需要做的准备工作就是下载sea.js然后放到你项目的某个位置.SeaJS项目目前托管在GitHub上,主页为 https://github.com/seajs/seajs/ .可以到其git库的buil

WPF入门教程系列(一) 创建你的第一个WPF项目

WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知识(或者其他.NET支持的语言):这个是当然的了,虽然WPF是XAML配置的,但是总还是要写代码的,相信各位读者应该也都有这个基础了. 2) HTML语言:虽然WPF是窗体程序但是由于使用的XAML语言,如果以前接触过HTML.XHTML.ASP.NET之路的东西的话会,接受这些标签会很有帮助的,如

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProperty)只能拥有一个binding. 这一点可以通过设置binding对象的方法名得知: public static BindingExpressionBase SetBinding( DependencyObject target, DependencyProperty dp, BindingB

Swift入门教程:基本语法大全

原文:Swift入门教程:基本语法大全       简介:                                                                                                                                                                                  什么是Swift                                  

WPF入门教程系列二——Application介绍

原文:WPF入门教程系列二--Application介绍 一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在.和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离. 微

Swift入门教程:基本语法(三)

打印输出 Swift提供了2个打印输出函数 println :输出内容后会自动换行 print :对比println,少了个自动换行的功能 示例 输出字符串 println("欢迎学习传智播客iOS学院Swift教程") var name = "传智播客iOS学院\n" print(name) 输出其他数据类型 var age = 7 println(age) println("我今年\(age)岁") 元组类型 什么元组类型 元组类型由 N个

Swift入门教程:基本语法(二)

数字格式 数字可以增加额外的格式,使它们更容易阅读 可以增加额外的零 0 let money = 001999           // 1999 let money2 = 001999.000   // 1999.0 可以增加额外的下划线 _ ,以增强可读性 let oneMillion1 = 1_000_000    // 1000000 let oneMillion2 = 100_0000      // 1000000 let overOneMillion = 1_000_000.000

Swift入门教程:基本语法(一)

      简介:                                                                                       什么是Swift Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为"雨燕",右上角的图标就是它的LOGO 跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 Swift的语法特点

[转载]WPF入门教程系列一——基础

一. 前言   最近在学习WPF,学习WPF首先上的是微软的MSDN,然后再搜索了一下网络有关WPF的学习资料.为了温故而知新把学习过程记录下来,以备后查.这篇主要讲WPF的开发基础,介绍了如何使用Visual Studio 2013创建一个WPF应用程序. 首先说一下学习WPF的基础知识: 1) 要会一门.NET所支持的编程语言.例如C#. 2) 会一点“标准通用标记语言”:WPF窗体程序使用的XAML语言,也属于“标准通用标记语言”的一个分支.如果以前接触过XML.HTML.XHTML.AS