swift 流程控制

寵の児 提交于 2019-12-10 09:25:32
//

//  main.swift

//  swift流程控制

//

//  Created by zhangbiao on 14-6-13.

//  Copyright (c) 2014 理想. All rights reserved.

//


import Foundation


// swift 流程控制


/*

swift 流程控制主要分为顺序   分支   循环

1.顺序:从上到下依次执行,遇到函数调用,调用完毕函数继续执行


2.分支:根据分支条件进行分支

      1if{} else{}

      2switch {case:...}


3.循环:循环执行,遇到结束条件

      1while  do{} while

      2 for in  for(){}

4.循环分支中,控制流程的四个关键字 continue  break  fallthrough  return(多用于函数中) 相关说明




*/


func testfunc()

{

    

    

//1.顺序(略)---------------------------------------------------------------------------------------

    

//2.分支--------------------------------------------------------------------------------------------

    //声明一个Bool 类型的变量 赋值为true

    var bgen:Bool = true


    //分支

    if(bgen)

    {

        println(bgen);

    }else

    {

        println(bgen);

    }

    

    //分支 switch {case:...}

    /*

     特点:(1)支持任意类型的数据以及各种比较操作(不仅仅是整数以及测试相等)

          (2)运行switch中匹配到的子句之后,程序会退出switch语句 ,并不会继续向下运行,所以不需要在每个子句结尾写break  如果想继续执行 在原来break 的位置写 fallthrough  即可

    */

    

    

    

    ////switch ()中的值可以是Int

   var value=123;

    switch(value)

    {

    case 123:

        println("1")

        

        fallthrough//继续执行

    case 2:

        println("2")

    

    case 3:

        println("3")

    default:

        println("没有匹配的")

    }

    

    

    //switch ()中的值可以是字符串

    switch("理想")

        {

    case "理想":

        println("理想")

        

    case "理想2":

        println("理想2")

        

    case "理想3":

        println("理想3")

    default:

        println("没有匹配的字符")

    }

    

    

    //case 中可以有多个匹配项

    switch("abc")

    {

    case "123":

        println("123");

        

    case "456","abc":

        println("123  abc ");

        

    default:

        println("没有找到合适的匹配");

    }

    

    

    //   比较操作   hasSuffix 函数是判断字符字符串是不是以其参数结尾

    switch("理想 and swift")

    {

    case let x  where x.hasSuffix("swift"):  // 注意此时的 x 的值就是switch()中的值where 额外的判断条件

        println("swift");

    case  "理想":

        println("理想");

    default:

        println("me");

    }

    

//2.循环--------------------------------------------------------------------------------------------

    //循环

    //while(){}  do{}while()  重复运行一段代码直到不满足条件。循环条件可以在开头也可以在结尾

    

    var i:Int = 0;

    while( i<10)

    {

        i++;

        println(i);

    }


    do

    {

    i--;

        println(i);

        

    }while(i>0);

   

    

    

    

    //for in 

    //使用for-in循环来遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符

    

     for index in 1...5

    {

        println("index=\(index)");

        

    }

    //解释... 区间的意思    1...5 的意思 [1,5]  1..5 的意思  [1,5)    index是一个每次循环遍历开始时被自动赋值的常量。这种情况下,index在使用前不需要声明,只需要将它包含在循环的声明中,就可以对其进行隐式声明,而无需使用let关键字声明。 index常量只存在于循环的生命周期里。如果你想在循环完成后访问index的值,又或者想让index成为一个变量而不是常量,你必须在循环之前自己进行声明。

    

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

    var num=0;

    for _ in 1...5

    {

        num++;

        println("num =\(num)");

    }


    //遍历字符

    for str in "ABCDE"

    {

        println("str=\(str)");

    }

    

    

    

    //for(){  }

    

    for(var i=0; i<10; i++)

    {

        println("i=\(i)");

        

    }

    

    

//4.循环分支中,控制流程的四个关键字说明--------------------------------------------------------------------------------------------

  

    //continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。就好像在说本次循环迭代我已经执行完了,但是并不会离开整个循环体。

    

   //break语句会立刻结束整个控制流的执行。当你想要更早的结束一个switch代码块或者一个循环体时,你都可以使用break语句。当在一个switch代码块中使用break时,会立即中断该switch代码块的执行,并且跳转到表示switch代码块结束的大括号(})后的第一行代码。

    

    

  //fallthrough  fallthrough关键字不会检查它下一个将会落入执行的 case 中的匹配条件。fallthrough简单地使代码执行继续连接到下一个 case 中的执行代码,这和 C 语言标准中的switch语句特性是一样的

    

  //return  在函数中具体讲

    

    

}


// 调用函数

testfunc();


//执行结果:

true

1

2

理想

123  abc 

swift

1

2

3

4

5

6

7

8

9

10

9

8

7

6

5

4

3

2

1

0

index=1

index=2

index=3

index=4

index=5

num =1

num =2

num =3

num =4

num =5

str=A

str=B

str=C

str=D

str=E

i=0

i=1

i=2

i=3

i=4

i=5

i=6

i=7

i=8

i=9

Program ended with exit code: 0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!