在Swift中,也有控制流,分别是For,For-In,For条件递增,While,Do-While等等,让我们一起来探讨一下:

1.For循环

在Swift中提供两种循环,一种是For-In,另一种是For条件递增,先来看第一种:

for index in 1...5 {
    println("\(index) times 5 is \(index * 5)")
}
// 打印出来的结果: 
//1 times 5 is 5
//2 times 5 is 10
//3 times 5 is 15
//4 times 5 is 20
//5 times 5 is 25

如果你不需要知道范围内每一项的值,你可以使用下划线(_)替代变量名来忽略对值的访问:

let base = 3
let power = 10
var answer = 1

for _ in 1...power {
    answer *= base
}
println("\(base) to the power of \(power) is \(answer)")
// 打印出来的结果:3 to the power of 10 is 59049

在前面数组和字典的遍历就已经举过例子了,所以这里就不再列举了.

2.For条件递增

在Swift中,我们也可以使用使用条件递增,只不过和OC有一些区别,现在让我们来看看:

for var index = 0; index < 3; ++index {
    println("indx is \(index)")
}
// 打印出来的结果: indx is 0
// indx is 1
// indx is 2

其他的基本上都差不多,知识在Swift中的声明不太一样.

3.While循环

While循环其实和OC也是差不多的,让我们来看看例子:

var square = 0
var diceRoll = 0
let finalSquare = 25
var board = [Int](count: finalSquare + 1,repeatedValue: 0)
while square < finalSquare { if ++diceRoll == 7{ diceRoll = 1 } square += diceRoll if square < board.count { square += board[square] } } println("\(square),\(diceRoll),\(finalSquare)") // 打印出来的结果: 27,3,25

原理基本上都差不多只是有一些细节需要注意一下.

4.Do-While循环

在Swift中的Do-While循环里,和OC中的Do-While差别也不大,让我们来看看例子:

var a = 20
var b = 10
do {
if ++b == a{
        a = 0
    }
} while a > b
println("\(a),\(b)") // 打印出来的结果: 0,20

5.条件语句

在Swift中,也有判断的条件语句,那就是if,用法和OC一样,没区别,让我们来看看吧:

var temperatureInFahrenheit = 30
if temperatureInFahrenheit <= 32 {
    println("It's very cold. Consider wearing a scarf.")
}
// 打印出来的结果: It's very cold. Consider wearing a scarf.

和OC一样,用 if 语句来判断条件,如果条件成立,那么就会返回true,否则就是false.

6.Switch开关

在Swift中的Switch开关非常的好用,和OC不一样,在OC中,如果Switch忘记写break就会报错,但是在Swift中就不需要写这个东西,比如:

let someCharacter: Character = "e"
switch someCharacter {
    case "a","e","i","o","u":
    println("\(someCharacter) is a vowel")

    case "b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z":
    println("\(someCharacter) is a consonant")

    default:
    println("\(someCharacter) is not a vowel or a consonant")
}
// 打印出来的结果: e is a vowel

在Switch中还可以这么使用:

let anotherCharacter: Character = "a"
switch anotherCharacter {
    case "a":
        break
    case "A":
        println("The letter A")
    default:
        println("Not the letter A")
}
// 打印出来的结果: 空的

PS: 在Swift中不存在隐式贯穿,在Swift中,一旦case执行完毕后,就不会继续往下执行,所以也就不需要break了,但如果你的case是空的,那么就必须得写break了,因为在Swift中,Switch的开关必须得有一个内容.

同样的,一个case也可以包含多个模式,比如:

7.范围匹配

let count = 3_000_000_000_000
let countedThings = "stars in the Milky Way"
var naturalCount: String
switch count {
    case 0:
        naturalCount = "no"
    case 1...3:
        naturalCount = "a few"
    case 4...9:
        naturalCount = "several"
    case 10...99:
        naturalCount = "tens of"
    case 100...999:
        naturalCount = "hundreds of"
    case 1000...999_999:
        naturalCount = "thousands of"
    default:
        naturalCount = "millions and millions of"
    }
println("There are \(naturalCount) \(countedThings).")
// 打印出来的结果:There are millions and millions of stars in the Milky Way.

好了,这次我们就讲到这里,下次我们继续~

Swift语法基础:17 - Swift的For循环, While, Do-While, If, Switch的更多相关文章

  1. ios – 等待异步方法在for循环中完成

    我有一个包含三个异步方法的for循环,我希望在这3个异步方法完成后进行一些处理.你有任何技术可以得到这个结果吗?

  2. xcode – Swift:如何在Playground中绘制UI?

    如何绘制UI(矩形,按钮,视图等)并实时查看结果,如下所示:https://devimages.apple.com.edgekey.net/swift/images/swift-screenshot.jpg?所有我可以看到的是控制台输出,但我找不到显示视觉显示(Balloons)和图表的选项.解决方法当您有一个像for循环的东西,或者当鼠标悬停在结果区域时,您可以在“快速查找”或“圈”/“加号”按

  3. 寒城攻略:Listo 教你 25 天学会 Swift 语言 - 07 Control Flow

    importFoundation//***********************************************************************************************//1.ControlFlow(控制流)//_________________________________________________________________

  4. Swift语法基础:17 - Swift的For循环, While, Do-While, If, Switch

    在Swift中,也有控制流,分别是For,For-In,For条件递增,While,Do-While等等,让我们一起来探讨一下:1.For循环在Swift中提供两种循环,一种是For-In,另一种是For条件递增,先来看第一种:如果你不需要知道范围内每一项的值,你可以使用下划线(_)替代变量名来忽略对值的访问:在前面数组和字典的遍历就已经举过例子了,所以这里就不再列举了.2.For条件递增在Swi

  5. Swift语法基础:19 - Swift的控制转移的语句, Continue, Break, Fallthrough, Labeled Statements

    当在一个switch代码块中使用break时,会立即中断该switch代码块的执行,并且跳转到表示switch代码块结束的大括号(})后的第一行代码。Swift语言的这种避免默认落入到下一个分支中的特性意味着它的switch功能要比C语言的更加清晰和可预测,可以避免无意识地执行多个case分支从而引发的错误。fallthrough简单地使代码执行继续连接到下一个case中的执行代码,这和C语言标准中的switch语句特性是一样的。

  6. Swift教程06-基本数据类型(二)Bool布尔类型对比Java-boolean,Objc-BOOL

    a:b3.Bool使用示例定义两个Bool值输出是true4.在循环或if语句中使用Bool类型if语句中使用Bool类型while循环中使用Bool类型注:if/while循环在Swift中需要省略括号,println代表在控制台输出并且换行,和Java中的类似!

  7. Swift for 的几个例子

  8. Swift教程11-条件分支循环语句_强大的Switch case

    Swift的条件分支语句与C语言的有一些不同,特别是Switch.Case语句.功能十分强大.1.if/else分支结构Swift中,ifelse语句你可以不用写那个每次都需要写的圆括号了,刚开始也许不习惯,但是习惯之后你却再也回不去了...Swift的if语句写法如下:但是请注意,请勿省略花括号,否则会报错!

  9. [anyObject] 类型推断 Type Casting

    在swift中,如果遍历一个集合,可能就需要用到类型推断方式二:适合多种类型的混合,在for循环里,如果是多种类型,就进行多种类型的判断添加if-else

  10. Swift学习—流程控制

    知识点:forin循环中的变量可以使用下划线_,意思是不需要用到此变量,系统就不会给变量分配存储空间switch中case后面必须有可执行的语句,如果有许多结果需要执行同一个语句的话,swift支持多条件匹配switch支持范围匹配switch可以匹配元组数据switch可以绑定数值switch中的case可以使用where来增加判断条件fallthrough关键字,当执行完前case后,会接着执行fallthrough后面的case或者default语句,fallthrough后面的case语句中的判断

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部