控制语句 for while if switch

news/2024/7/3 1:08:25

一、for…in 结构

for i in 0...4{

    print(i)    //使用到了变量 i 

}

 

for _ in 0...1{  // 后期没有使用到变量,可以直接用个下划线 _  占位就行了

    print("hello")

}

 

二、while    结构

var i : Int = 0

while i < 5 {

    print("a")

    i += 1

}

//repeat…while 结构 (相当于do...while)

var j : Int = 0

repeat {

print("b")

    j += 1

}while j < 2

三、if语句

//if … else if语句

var h : Int = 10

if h < 5{     //条件的判断没有小括号

    print("c")

}else if h < 20 {

    print("d")

}

四、switch结构

//不存在隐式的贯穿  (可以不写break)

1.switch…case  中的多个条件的使用

var sw1 : Int = 1

switch sw1 {

case 1,2,3 : print("aaa")

//    break

case 5,6,7 : print("bbb")

//    break

case 10,11 : print("ccc")

//    break

case 15,16 : print("ddd")

//    break

default:

    print("eee")

}

 

2.switch…case  中的区间使用

var sec = 87

switch sec {

case 91...100:

    print("A")

case 81...90:

    print("B")

default:

    print("C")

    

}

3.switch…case 中的元组_使用

var yuanzu = (2,2)

switch yuanzu{

case (1,1):

    print("1,1")

case (2,2):

    print("2,2")

case (3,3):

    print("3,3")

default:

    print("4,4")

    

}

//只判断第一个元素,第二个用下划线_表示任意

var yuanzu1 = (2,3)

switch yuanzu1{

case (_,3):

    print("1,1")

case (2,_):

    print("2,2")

case (3,_):

    print("3,3")

default:

    print("4,4")

    

}

4.switch…case 中的元组值绑定

var yuanzu2 = (2,3)

switch yuanzu2{

case (let x,3):  //类似下滑线, 但是能获取到

    print(x)

case (2,2):

    print("2,2")

case (3,3):

    print("3,3")

default:

    print("4,4")

    

}

5.switch…case 中的where条件语句

var yuanzu3 = (2,3)

switch yuanzu3{

case let (x, y) where x==y :

    print("相同")

default:

    print("不同")

    

}

6.switch…case 中的fall through

var yuanzu4 = (2,2)

switch yuanzu4{

case (1,1):

    print("1,1")

case (2,2):

    print("2,2")

    fallthrough   //贯穿,继续向下执行

case (3,3):

    print("3,3")

default:

    break

    

}

 

总结:控制转移语句

//1.continue  告诉一个循环体立刻停止  本次 循环迭代,重新开始下次循环迭代

//2.break   会立刻结束  整个  控制流的执行

//a.当在一个循环体中使用break时,会立刻中断该循环体的执行,然后跳转到表示循环体结束的大括号(})后的第一行代码。不会再有本次循环迭代的代码被执行,也不会再有下次的循环迭代产生。

//b.当在一个switch代码块中使用break时,会立即中断该switch代码块的执行,并且跳转到表示switch代码块结束的大括号(})后的第一行代码。

//3.fallthrough  贯穿关键字不会检查它下一个将会落入执行的 case 中的匹配条件。fallthrough简单地使代码执行继续连接到下一个 case 中的执行代码

 例1:

for i in 0...3{

    for j in 0...3{

        if j == 2{

            continue  //停止本次循环

        }

        print("i \(i) j \(j)")

    }

}

 例2:

//终止带 标签 的循环(给循环加个名字)

abc : for i in 0...3{

    def : for j in 0...3{

        if j == 2{

            break abc //终止abc循环

        }

        print("i \(i) j \(j)")

    }

}

 

转载于:https://www.cnblogs.com/daxueshan/p/5585186.html


http://lihuaxi.xjx100.cn/news/244328.html

相关文章

VS2010中“工具选项中的VC++目录编辑功能已被否决”解决方法

http://blog.csdn.net/chaijunkun/article/details/6658923 这是VS2010的改变&#xff0c;不能够在“工具-选项”中看到“VC目录”了。 但是呢&#xff0c;我们可以在另外一个地方找到它&#xff0c;请看下边的对比照片。 VS2008中&#xff1a; VS2010中&#xff1a; 打开方式非…

Map json数据解析

个人学习资源免费分享网站&#xff1a;http://xiaocaoshare.com/ public class App { public static void main(String[] args) { Map<String, List<Student>> map new HashMap<String, List<Student>>(); List<Student> …

Zabbix 3.0 从入门到精通(zabbix使用详解)

第1章 zabbix监控 1.1 为什么要监控 在需要的时刻&#xff0c;提前提醒我们服务器出问题了 当出问题之后&#xff0c;可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性&#xff08;也称为可用性&#xff0c;英文描述为HA&#xff0c;High Avail…

C# 属性、索引

属性&#xff08;property&#xff09;: public string Name {get{return _name;}set{_name value;} } 简写为&#xff1a; public string Name { set; get;} 索引器&#xff08;index&#xff09;&#xff1a; 索引器为C#程序语言中泪的一种成员&#xff0c;它是的对象可…

java架构设计理解(一)

个人学习资源免费分享网站&#xff1a;http://xiaocaoshare.com/ 1.关于单机架构、集群架构、分布式架构理解&#xff1a; 单机架构&#xff1a;所有的代码都写在一个项目中&#xff0c;项目部署在一台服务器上 集群架构&#xff1a;就是单机复制几份&#xff0c;一起组成的…

(原)使用mkl计算特征值和特征向量

转载请注明出处&#xff1a; http://www.cnblogs.com/darkknightzh/p/5585271.html 参考文档&#xff1a;mkl官方文档 lapack_int LAPACKE_sgeev(int matrix_layout, char jobvl, char jobvr, lapack_int n, float* a, lapack_int lda, float* wr, float* wi, float* vl, lapac…

阿里巴巴开源的 Blink 实时计算框架真香

Blink 开源了有一段时间了&#xff0c;竟然没发现有人写相关的博客&#xff0c;其实我已经在我的知识星球里开始写了&#xff0c;今天来看看 Blink 为什么香&#xff1f; 我们先看看 Blink 黑色版本&#xff1a; 对比下 Flink 版本你就知道黑色版本多好看了。 你上传 jar 包的时…

Linux字符设备驱动程序的框架(新写法)

这是老版本内核的的Linux驱动注册函数写法&#xff1a; major register_chrdev(0, "hello", &hello_fops); /* (major, 0), (major, 1), ..., (major, 255)都对应hello_fops */ 新版本内核Linux驱动注册函数写法#define MAJOR(devid) ((unsigned int) ((devid…