Swift控制流

时间:2022-11-14 04:15:29

本文简单的介绍swift一些基本语法的使用,在本文中不会做更深的剖析,只提及一些语法的简单的使用,快速学会编写swift程序。高手请绕路走嘿嘿

常量与变量:

swift中定义所有的变量使用var,定义所有的常量使用let。编译器会根据你声明的变量和常量自动识别你定义到底是哪一种数据类型。

var  a = 10

var  b = 5.20

let   a1 = 10

let   b1 = 5.20

let  c1 = "string"

编译器能够自动识别a是一个整型变量,b是一个浮点型变量,a1是一个整形常量,b1是一个整型常量,c1是一个字符串常量

如果在定义变量过程中想指明变量类型的话格式为: let/var   变量名: 数据类型 = 数值

例:

  let   a:  Int = 10

  var  str: String = "This is a string"

if语句:

1,swift的if语句跟OC的有点差别,在swift中,if后面的小括号能够省略,其实在if,while,for,switch语句后面的小括号都能够省略

2,还有在OC中当条件判断后只有一步操作的时候大括号可以省略:

if(isOrNot == YES)

{

  NSLog(@"OK");

}省略为:

if(isOrNot ==YES)

  NSLog(@"OK");

但是在swift中,大括号在什么时候都不能省略

3,此外,swift中条件语句只支持bool的判断,不支持非零即真.以下是错误的写法

let  value = 10

if (value)

{}

switch语句:

switch语句在swift中和OC中写法都差不多,但是几方面的区别

1,在OC中如果有多个case的时候,每一个后面必须有break跳出判断,否则会穿透。但是swift是不会穿透的,所以在switch中break可以省略不写。如果swift想要贯穿的话可以在case后面加上添加"fallthrough"关键字

2,OC中如果在case中间定义局部变量必须写大括号确定作用域,在swift中可以不用写

3,OC中default的位置可以随便写。swift的default必须放在最后面,而且大部分情况下不能省略

4,swift的case支持多种模式: case  0,1,2:

switch num

{

  case 0:

    print("1")

  case 1:

    print("2")

    let num1 = 10

  default:

    print("default")

}

for循环:

普通for循环:for  var i = 0;i < 10;i ++{print(i)}

swift的for循环还可以这么写:for  i   in  0..<10{print(i)}       类似于for-in遍历

              for  i in 0...10{print(i)}

while循环:

while循环跟OC中while循环的写法基本一样。

do-while:

do-while循环在swift中是将do换成repeat。

var b:Int = 1

repeat{

print(b)

b++

}while b<10

三目运算符:

使用三目运算符能够省略掉很多if的判断。

let res = (num == 5) ? 5 : 10

可选类型:

可选类型,如果一个方法返回值带有?,例如方法:init?(string URLString: String)

let url  = NSURL (string: "http://www.baidu.com")

以后看到一个方法返回值或是后面有?的话说明返回是一个可选类型

打印可选类型出来的结果会被一个optional包裹

使用!可以去除optional

let request = NSURLRequest(URL: url!)

if url2 != nil

{

let request2 = NSURLRequest(URL: url2!)

}

if let urlfinal = url

{

let finalRequest = NSURLRequest(URL: urlfinal)

}

OC语法迁移到swift上用起来其实大同小异,就是一些写法发生了变化。让我们语言编写起来显得更加严谨,swift是一门强语言,能够很好的避免由于我们编写习惯导致潜在的一些错误。