文档章节

swift 流程控制

法斗斗
 法斗斗
发布于 2016/03/03 13:16
字数 1145
阅读 5
收藏 0
//

//  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

本文转载自:

共有 人打赏支持
法斗斗
粉丝 20
博文 367
码字总数 17774
作品 0
杨浦
程序员
Swift讲解专题六——流程控制

Swift讲解专题六——流程控制 一、引言 一种编程语言的强大与否,很大程度上取决于其提供的程序流程控制方案,就如使用汇编语言实现复杂的程序流程是一件痛苦的事情。Swift中提供了许多强大的...

珲少
2016/05/12
383
0
智捷公开课马上开始了--第一系列读《Swift开发指南(修订版) 》看Swift视频教程

引用: 智捷课堂携手51CTO学院、图灵教育联合举办iOS线上培训就业班系列体验公开课。 分享移动开发、移动设计方向最新,最热,最抢眼技术热点以及设计经验。我们每周将最少举办一次公开课,同...

智捷课堂
2015/01/15
95
0
OpenStack Swift集群与Keystone的整合使用说明

之前已经介绍了OpenStack Swift集群和Keystone的安装部署,最后来讲一讲Swift集群与Keystone的整合使用吧。 1. 简介 本文档描述了Keystone与Swift集群的整合使用方法,即Swift通过Keystone完...

长平狐
2013/11/25
1K
0
云计算---openstack基础构架以及服务方式详解

一:什么是openstack 是Rackspace和NASA共同发起的开源项目,他是一系列软件项目的组合。 这些项目是松耦合的关系,可以进行独立的安装,启动和停止,只有在必要的时候才进行通信(优点:扩展...

yaohong
2016/11/08
0
0
OpenStack Swift client开发

如果你搭建好了Swift环境 ,你应该可以通过Swift 命令 来尝试去测试上传下载等功能,这是因为在安装Swift的时候,通常会安装一个python-swiftclient客户端,这个一个python的开源项目 同样使...

zhouxingxing
2012/09/05
0
11

没有更多内容

加载失败,请刷新页面

加载更多

下一页

nginx模块学习六 add_header 跨域访问

语法 Syntax: add_header name value [always];Default: --Context:http,server,location,if in location 例:/etc/nginx/conf.d/default.conf server {    listen       80; ......

Romanceling
今天
0
0
SpringBoot初探

#SpringBoot初探 三种创建SpringBoot项目的方式: 第一种:使用IDEA创建maven项目,选择maven-archetype-quickstart; 第二种:使用IDEA创建Spring Initializer,选择web组件; 第三种:使用...

向码而生
今天
2
0
IO

JAVA中IO技术:BIO、NIO、AIO 1、同步异步、阻塞非阻塞概念 同步和异步是针对应用程序和内核的交互而言的。 阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方...

DemonsI
今天
0
0
org.apache.commons 常用工具类

一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。 toString 转换IO流、 Uri、 byte[]为String。 copy IO流数据复制,...

sprouting
今天
0
0
linux使用Inotify监控目录或者文件状态变更

基本概念: Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。 需求: 1.有一个文件采集进程,...

mickelfeng
今天
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部