Swift的基本类型和流程控制

Swift  是一门静态的强类型语言。它以简单、干净、可读性好等特点著称。

  

  

  

1、 为什么是静态语言?

    首先静态语言比之动态语言,更具有安全性。它不允许类型之间自动的进行转换,必须要显示的转换。Swift是类型安全的,它会在编译的时候就检查你的代码,任何类型不匹配时都会报错。这使得编程人员能够尽快捕获并尽可能早地在开发过程中修正错误。但是,这并不意味着你必须指定每一个常量和变量所声明的类型。如果不指定你需要的类型,Swift使用类型推导来指定出相应的类型。类型推导使编译器在编译的时候通过你提供的初始化值自动推导出特定的表达式的类型。类型推导使Swift比起C或Objective-C只需要更少的类型声明语句。常量和变量仍然显式类型,但大部分指定其类型的工作Swift已经为你完成了。当你声明一个常量或变量并给出初始值类型的时候,类型推导就显得特别有用。这通常是通过给所声明的常量或变量赋常值来完成的。

  

  例如:你要声明一个用户名字符串常量,并为他赋值叫“json”.

    let userName = "json"

  

    不必指定什么类型,在编译时会通过类型推导的机制将常量userName 自动设为 赋的值的类型。

  

  

  2、什么叫强类型语言?

即变量或者常量,必须要先定义然后才能使用,否则会报错。

好了 ,言归正传,下面给大家介绍下swift的基本类型和流程控制

  

  

  3、基本类型

     包括整形Int、浮点数Double和Float、布尔类型Bool以及字符串类型String。Swift还提供了两种更强大的基本集合数据类型,Array和Dictionary。这里要提到。除基本数据类型外,swift还有一个称为“元祖”的数据类型,这是他独有的。后面我会给大家解释。

4、常量和变量

  

    常量和变量的命名方式还是采用大家熟悉的”驼峰“命名。常量指向一个特定类型的值,一旦赋值,不能再次修改。变量也是指向一个特定类型的值,但它可以根据需要做出修改。另外swift的宗旨是简洁,所以每行可不写分号

    前面说了,swift是强类型的语言,所以它的常量和变量需要先声明再使用。那么常量和变量怎么声明呢?

    常量的声明:

      let开头,表明你要声明一个常量  后接变量名,一般采用驼峰命名方式命名,用=符号连接  ,再接你要赋的值。如果这时你不指定初始值,需指定常量类型。

      例如:  let usreName  =  "tom"   //声明时赋值

          let userName String  ///声明时不初始化值

           userName = "tom"

    注意:由于swift的语法要求规划化,所以值和运算符之间要么都不留空格,要么都留空格。

    值得注意的是在声明字符时有所不同,学过其他高级语言的朋友都知道,其他高级语言在声明字符时一般把值用单引号引住,然swift有所不同,它的字符赋值还是用双引号,但要用注解声明。

  例如:

    var ch :Character = "c"  // 字符值 必须用双引号,并且是一个字符

  用let开头声明的常量,在赋值后,不能做修改。

  

   变量的声明:

     var 开头,其他的于常量的声明一致,这里就不在详细描叙,大家参照常量的声明。

5、流程控制

  

    

  if  esle:

  

  例如:

  

  let i = 1

  

   if   i  {

  

    print("编写错误!")

  }

  

  就swift 而言  ,这种写法是错误的。i是一个常量,不是一个表达式,也就不能当成是boolean类型来用。

  正确的编写应该是:

  

  let i = 1

  

   if   i ==1 {

  

    print("编写正确!")

  }

  

  for :有两个形式。

  第一种:例如:

 

  

  for  var i = 0;i < 1000;i++{

    print("说一千遍我爱你!")

  }

  

  

  第二种:例如:

  

  let array = [0,1,2,3,4,5,6,7,8,9]

  for a in array {

    print("\(a),")   //输出结果为:0,1,2,3,4,5,6,7,8,9

  }

  

  第二种方法相比于第一种,最明显的是不用知道数组的长度,就可以遍历出每个元素。

  while :也是循环控制语句。可以和for之间完美转换。例如:

  

  

   var  i = 0

  

  

  while   i < 1000 {

  

      print("说一千遍我爱你!")

i++

  }

repeat while:循环控制语句,跟java的do while一样的作用,都是先执行一次,再判断条件。例如:

  

  var  i = 0

  repear {

    print("说一千遍我爱你!")

i++

  } while i < 1000

switch:分支判断语句。以前我们有的朋友也学过,但swift中switch的作用更加强大和突出了。它可以接收任意的常量和变量,只要前后的类型保持一致。例如:

let i = "abc"

switch i{

  case "abc":

    print ("abc")

  default:

    print ("其他情况")

}

注意:Swift要求switch 是个完整的结构,也就是说switch中必须有一个case以上和一个default。

好了,今天的分享就到这。希望可以帮到刚刚学习ios或者想要学ios的朋友们,我也是新手,有不足和不对的地方求大神指正。让我们一同进步!大家可以关注我的微博http://www.cnblogs.com/lb0129/

  

  

  

    

  

      

      

      

    

时间: 2024-08-13 21:41:40

Swift的基本类型和流程控制的相关文章

ios数据的基本类型和流程控制

swift的声明变量方式和js是类似的.基本类型基本都和java的差不多,多了字符类型. let:用于声明常量: var:用于声明变量: 基本类型有:double,float,Int(数字类型):boolean(布尔类型):character(字符类型):Tuple(元祖): 这时候有朋友对Tuple(元祖)不理解了.在数学中就有元祖这个概念,学过java语言的朋友都知道,它其实表示的是一个集合,一个有键值对的集合.但是元祖不支持foreach遍历,因为一个集合能不能遍历主要是看他有没有实现类似

Swift中文教程(三)--流程控制

原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花括号包住这个循环体是必须的: 1 let individualScores = [75, 43, 103, 87, 12] 2 var teamScore = 0 3 for score in individualScores { 4 if score > 50 { 5 teamScore += 3

Swift流程控制

使用if和switch来创建流程条件,使用for-in.for.while.do-while来创建循环.条件和变量外面的小括号时可选的,但是循环体外面的大括号时必选的. 如下代码 1 let individualScore=[75,43,103,87,12] 2 var teamScore=0; 3 for score in individualScore{ 4     if(score>50){ 5     teamScore+=3 6     } 7     else{ 8         

Swift 程序流程控制

Swift采用类同c语言的流程控制语句,if, for, for-in,  while,  do-while , switch, break, continue .Swift语言的Switch语句自动添加了break效果,这样你可以不用没个case后面再写break.同c语言不同,swift语言的if for while 等,没有括号来括表达式 1: if 语句.if语句只对逻辑值检测.这里不同于c语言的if语句是检测是否 非0. var bFlag:Bool = true if bFlag {

Welcome to Swift (苹果官方Swift文档初译与注解二十七)---189~198页(第四章-- 流程控制)

Switch 一个switch语句里包含一个值,并且用这个值与其他几个可能的匹配模式进行比较,然后根据成功匹配上的模式,执行相应的代码块.switch语句提供了比if语句更多的选项来相应多种潜 在的情况. 最简单的一个例子: switch some value to consider { case value 1:   respond to value 1 case value 2, value 3:   respond to value 2 or 3 default:   otherwise,

Welcome to Swift (苹果官方Swift文档初译与注解二十八)---199~208页(第四章-- 流程控制)

Value Bindings (绑定值) 在switch的case中可以绑定一个或者多个值给case体中的临时常量或者变量,这个成为绑定值. 代码样例: let anotherPoint = (2, 0) switch anotherPoint { case (let x, 0):   println("on the x-axis with an x value of \(x)") case (0, let y):   println("on the y-axis with

Swift学习——格式控制符和元组流程控制(二)

Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  例如学生表中的姓名,年龄,电话等 定义如下 var studentinfo = ("jhon",29,"123456") println(studentinfo.0) 访问的时候是通过下标来访问的. //元组本身是以一个整体存在的,如果用下标获取元祖的某一项的数据时 //可以通过点语法加下标的形式得到,这叫元祖的拆包 println("name:\(studentinfo.0)

Welcome to Swift (苹果官方Swift文档初译与注解二十九)---209~218页(第四章-- 流程控制)

Break break语句会立刻结束整个流程控制的执行.break语句可以在switch语句或者循环语句中帮助你提前结束循环或者switch的执行. Break in a Loop Statement  (循环语句中的break) 当在循环语句中使用break,会立刻结束循环的执行,并且跳转到循环体之后的第一行代码.循环不会再遍历执行了. Break in a Switch Statement (switch语句的break) 当在switch语句中使用break,break会立刻结速switc

Swift的流程控制和函数

流程控制(Control Flow) For循环 for循环和C语言,OC用法很相像,通常有for()和 for in两种. 遍历时可以利用下划线"_"忽略对值的访问等. Switch switch在Swift中则显得灵活的多,不过需要注意的是,不同于C语言,Swift中的Switch不存在隐式的贯穿,每个case里的表达式后面不需要写break则会自动跳出. 如果你想保留这次匹配并向下匹配的话,请使用fallthrough关键字. 每个case里必须要有表达式,每个switch也必须