swift流程控制

来源:互联网 发布:北京人少的景点知乎 编辑:程序博客网 时间:2024/05/17 22:23

/// ////////////////////  if条件句可选值  ///////////////////////

var str: String? ="hello"//这样的写法是可选值也就是str 的只是可以改成nil什么的

//print(str == nil)

str = nil;

var greeting = "haha"

if let name =str {//如果可选值为nil,条件判断为false大括号中的代码会被跳过,如果不是nil,则会赋值给let后面的常量,这样代码中就可以使用这个值了

    greeting ="hehe,\(name)"

}else {

    greeting ="heihei"

}

print(greeting)


let name : String? =nil //可选值

let name2 : String ="wpy"// 默认值

let name3 = "Hi\(name ??name2)"//如果可选值缺失的话,可以用默认值来代替

print(name3)

/// //////////////////////////// switch /////////////////////////////////




//switch 支持 任意类型的数据  以及 各种比较操作 (已不再仅仅是整数以及测试相等了)

let  st = "cucumber  popper"

switch st {

    case"colery":

        print("1111");

    //break

    case"cucumber","watorcress":

        print("222")

    //break

    caselet y where y.hasPrefix("cucumber")://他将匹配等式的值赋值给常量y

    print("ta is\(y)")

    caselet x where x.hasSuffix("popper")://运行switch中一旦匹配到的字句之后,程序就会停止,并不会在往下运行,所以就不要break

    print("it is\(x)")

    //break

    default://没有default会报错

    print("ok")

}








/// //////////////////for 循环///////////////////////////

///////单循环数组

let arr = [75,43,103,87,12]

var score = 0

for s inarr {

    if s >50 {

        score +=3

    } else {

        score +=1

    }

}

print(score)




//////双循环字典

let dic = [

    "P" : [2,3,5,7,11,13],

    "F" : [1,1,2,3,5,8],

    "S" : [1,4,9,16,25],

]

var max = 0

var type:String =""

//for-in来遍历字典需要两个变量来表示每个键值对 字典是一个无序的集合所以它的键值任意顺序迭代结束

for (key,values) indic {

    for numberin  values{

        if number >max {

            max = number

            type = key

        }

    }

}

print(type +"\(max)")



//循环中使用 ..<表示范围 也可以用传统的方法

var wpy1 = 0

for i in0..<4 {//不包括上界

    wpy1 += i

}


print(wpy1)


var wpy2 = 0

for i in0...4 {//包括上界

    wpy2 += i

}


print(wpy2)


//传统的方法单系统会推荐你用 上面的方法

var wpy3 = 0

for var i =0;i < 4 ;i+=1 {

    wpy3 += i

}


print(wpy3)

//////////////////////////////// while /////////////////////


var n = 1

var sum = 0


while n <100 {

    sum +=n

    n +=1 //n ++会警告

}

print(sum)



var sum1 = 0

repeat {

    sum1 +=n;

} whilen < 0//相当于do-while不管是否符合条件 都会执行一次


print(sum1)

0 0
原创粉丝点击