本文介绍: Java和Swift的大部分控制语句是一样,但是也有些不一样,Java关键字后面如果不止一个变量,则需要括号括起来,Swift则不需要,下面我们来详细看看各个控制流语句

Java和Swift的大部分控制语句是一样,但是也有些不一样,Java关键字后面如果不止一个变量,则需要括号括起来,Swift则不需要,下面我们来详细看看各个控制流语句

For-In

这是Swift里面特有的控制流语句,在Java之中是没有的,但是Java之中有个foreach语句,算是跟这个比较像。用法简单循环遍历一个集合里面的所有元素

for index in 1...5 {
    print("(index) times 5 is (index * 5)")
}
  • 1

For

这个Java跟Swift一样,使用条件判断和递增方法遍历集合里面的所有元素

for var index = 0; index < 3; ++index {
    print("index is (index)")
}
  • 1

While 循环

while循环运行系列语句直到条件变成false。这类循环适合使用在第一次迭代迭代次数未知的情况下。包括:

while循环Swift跟Java一样,repeat-while跟Java里面do-while是一样的,我们就不多说了。

If语句

这个跟Java完全一样,判断语句,最基本控制流,很简单

Switch语句

这个跟Java有些不一样,Java中我们需要写break中断一个case分支swift则不需要,会自动中断case分支。还有一个不同就是switch表达式比Java更广泛,Java 8以前只支持intbytecharshort,以后才支持String,但是Swift支持区间匹配字符串字符元组类型case分支支持绑定(Value Bindings)和where语句来判断额外的条件,比Java中的Switch语句更加强大。我们看个例子

let yetAnotherPoint = (1, -1)
switch yetAnotherPoint {
case let (x, y) where x == y:
    print("((x), (y)) is on the line x == y")
case let (x, y) where x == -y:
    print("((x), (y)) is on the line x == -y")
case let (x, y):
    print("((x), (y)) is just some arbitrary point")
}
  • 1

Continue和Break

Continue和Break跟Java中的一样,不必多说。

贯穿(Fallthrough

贯穿(Fallthrough)是swift里面特有的,默认情况下Switch语句的case分支自动中断的,如果加上Fallthrough就会自动贯穿到下一个case分支,就跟Java中不加break关键字是一样的效果

标签的语句

这个是swift中特有的,如果我们有两个for循环默认情况下break只能中断第一个for循环,但是使用标签的语句可以同时中断两个for循环语句,非常方便,我们看个例子

a:for var i = 0;i<10;++i{
    for var j = 0;j < 10;++j{
        if i == j{
            print("i=(i) and j=(j)")
            break a
        }
    }
}
  • 1

这个时候就只会打印i=0 and j=0,因为这个时候i==j整个循环就退出了,不会再执行了,很方便。

提前退出guard

guard语句也是Swift特有的也很方便,当然在Java中可以有类似的方法实现,我们还是先来看例子吧:

func greet(){
    var first = 10;
    guard first &gt; 10 else{
        print("first是小于或者等于10的")
        return
    }
    print("first大于10的")
}
greet()
  • 1

结果打印出”first是小于或者等于10的”,我们看到first大于10,为假,就执行else后面的语句,这个时候整个函数退出,不再执行后面的语句,很好理解吧,灵活的使用的可以增加代码的可读性!!!

原文地址:https://blog.csdn.net/stationinthemind/article/details/127862915

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_29488.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注