一、Swift中类型推导&基本运算

Swift中类型推导
  • 如果一个标识符在定义时有直接赋值,那么可以根据后面赋值的类型,来推导出前面标识符的类型,这样前面标识符的(:类型)可以省略
  • 查看标识符类型:option + 鼠标左键

  

  • 整型

    • 有有符号

      • 8位、16位、32位、64位跟C语言中的相同。
      • Int:和平台相关,默认相当于OC中的NSInteger
    • 无符号
      • 8位、16位、32位、64位跟C语言中的相同。
      • UInt:和平台相关,默认相当于OC中的NSUInteger
 
Swift中基本运算
  • Swift中在进行基本运算时必须保证类型一致,否则会出错

    • 相同类型之间才可以进行运算
    • 因为Swift中没有隐式转换
  • 数据类型的转化
    • Int类型转成Double类型:Double(标识符)
    • Double类型转成Int类型:Int(标识符)

    

Swift中的逻辑分支

一、if 分支语句 
  • 和OC中if语句有一定的区别

    • 判断句可以不加()
    • 判断句结果 必须是一个真假值

    

    • 正确写法:

      • let y = 10
        if y > 0 {
            print("y > 0")
        } else {
            print("y <= 0")
        }

二、switch 分支语句  
  • 基本用法跟OC一致
  • 不同:
    • switch后可以不跟()
    • case后可以不跟break(默认会有break)
  • 例子:
    • let sex = 0
      switch sex {
      case 0 :
          print("男")
      case 1 :
          print("女")
      default :
          print("泰国来的")
      }
 
  • 补充一: 一个case判断中可以判断多个值,多个值以,隔开

    • let sex1 = 0
      switch sex1 {
      case 0, 1:
          print("正常人")
      default:
          print("泰国来的")
      }
            正常人
  • 补充二: fallthrough 关键字可以实现case 穿透

    • let sex2 = 0
      switch sex2 {
      case 0:
          print("正常人0")
          fallthrough
      case 1:
          print("正常人1")
      default:
          print("其他")
      }
                     正常人0
                      正常人1
 
  • switch 特殊用法一:支持浮点型

    • let PI = 3.14
      switch PI {
      case 3.14:
          print("π")
      default:
          print("not π")
      }
 
  • switch 特殊用法二:支持字符串类型

    • let m = 5
      let n = 10
      var result = 0
      let opration = "+"
      switch opration {
      case "+":
          result = m + n
      case "-":
          result = m - n
      case "*":
          result = m * n
      case "/":
          result = m / n
      default:
          result = 0
      }

      print(result)

            15
 
  • switch 特殊用法二:switch支持区间判断
  • swift中的区间常见有两种
    • 开区间:0..<10 表示:0~9,不包括10
    • 闭区间:0...10 表示:0~10
    • let score = 80
      switch score {
      case 0..<60:
          print("不及格")
      case 60..<80:
          print("及格")
      case 80..<90:
          print("良好")
      case 90..<100:
          print("优秀")
      default:
          print("满分")
      }
          良好
 
 
三、三目运算符(跟OC中的一致) 
  

四、guard 使用
    • guard是Swift2.0新增的语法
    • 它与if语句非常类似,它设计的目的是提高程序的可读性
    • guard语句必须带有else语句,它的语法如下:
      • 当条件表达式为true时候跳过else语句中的内容,执行语句组内容
      • 条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
    • 格式:
      • guard 条件表达式 else {
            // 条换语句
            break
        }
        语句组
    • 例子:
      • var manAge = 18
        func hit(age: Int) -> Bool {
            guard age >= 18 else {
                print("打人不犯法")
                return false
            }
            print("打人犯法")
            return true
        }
        hit(manAge)
      • 打人犯法

Swift中循环

一、for循环
  • 常规写法

    • for var i = 0; i < 3; i++ {
          print(i)
      }
 
  • 区间for循环

    • for i in0..<3 {
          print("-->", i)
      }
 
  • 特殊写法:如果在for循环中不需要用到下标i

    • for_in0...3 {
          print("hello siri")
      }
 
二、while & do while循环
  • swift中的 while 的判断句必须有正确的真假,没有非0即真

    • var aa = 0
      while aa < 3 {
          aa++     // 这句如果不写就会 死循环
          print("hi siri")
      }
 
  • do while循环:使用repeat关键字来代替了do

    • var bb = 0
      repeat {
          bb++
          print("bbb")
      } while bb > 3
            bbb

Swift学习(三)类型推导&基本运算&分支&循环的更多相关文章

  1. Swift(一,创建对象,类型推导,基本运算,逻辑,字符串,数组,字典)

    swift用起来刚开始感觉有点怪怪的,但用了一段时间觉得还是挺好用的,哈哈.毕竟都是要有一个过程的嘛. 我就写一些自己在使用swift的时候的注意点吧,如有不正之处,还请指正! 一.在开发中优先使用常 ...

  2. Swift学习三

    http://blog.csdn.net/kuloveyouwei/article/details/36005299 Swift 提供两种集合类型来存储集合,数组和字典.数组是一个同类型的序列化列表集 ...

  3. Python开发【第三篇】:分支循环

    1. if 条件语句   语法: if 条件: 代码块 # 条件为真执行 else: # else 可选 代码块 # 条件为假执行   示例: n = int(input('请输入一个数字:')) i ...

  4. Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环(三)

    Swift学习--使用if和switch来进行条件操作,使用for,while,和do-while来进行循环 //switch支持随意类型的数据以及各种比較操作--不不过整数以及測试相等 //注意假设 ...

  5. Swift 学习- 05 -- 集合类型

    // 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...

  6. swift学习第九天:可选类型以及应用场景

    可选类型的介绍 注意: 可选类型时swift中较理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用,可以 ...

  7. 【Swift学习】Swift编程之旅---集合类型之数组(六)

    swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类 ...

  8. 第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告

    一.实验题目,设计思路,实现方法 第四次分支+循环 加强版 (2-2计算个人所得税,2-7 装睡,2-8计算天数) 设计思路:2-2 用if-else的语句,与计算分段函数的题类似的做法:2-7 运用 ...

  9. Python基础学习三 list-增删改查、切片、循环、排序

    一.list 增删改查 1.增加 方式一: stus = ['xiaohei','xiaobai','xiaohuang','cxdser'] stus.append('test001')#从最后面开 ...

随机推荐

  1. SSL证书在线工具

    证书在线工具 如果您是第一次申请SSL证书,如果您对您的服务器如何使用SSL证书还不熟悉的话,我们推荐您使用本套工具,本套工具支持所有SSL服务器证书格式和各种WEB服务器.帮助您在线生成CSR文件, ...

  2. FastReport使用一——简介

    一:FastReport Designer用法简介 1.使用FastReport.Net4文件夹下的Designer.exe进行模版的创建工作 图1 图1中,右键删除除==>数据区 之外的其他区 ...

  3. erlang和java通信

    连接在 https://guts.me/2014/07/27/erlang-communicates-with-java/ 代码在 https://github.com/mingshun/jinter ...

  4. 黄聪:Emeditor 编辑器常用的正则表达式

    Emeditor 目前来说是我个人感觉非常不错的一款记事本软件, 其中查找替换功能由于支持正则表达式而显得非常强大. <tr[^>]*> 匹配:<tr xxxxxxxxxxxx ...

  5. RedisCacheTool参考其中的文件读写功能

    package com.jr.market.tool; import java.io.BufferedReader; import java.io.File; import java.io.FileI ...

  6. Codeforces Round #363 (Div. 2) One Bomb

    One Bomb 题意: 只有一个炸弹,并且一个只能炸一行和一列的'*',问最后能否炸完所以'*',如果可以输出炸弹坐标 题解: 这题做的时候真的没什么好想法,明知道b题应该不难,但只会瞎写,最后越写 ...

  7. Centos 7 修改SSH端口号

    注意!这里的Centos版本是7   step1 修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config #Port 22         //这行去掉#号 Po ...

  8. cotex_m3内核提供的ITM串口打印调试

    cotex_m3内核的ARM提供了ITM串口打印观测的功能,可以不用ARM单片机自己的串口就可在开发时候串口打印调试.节约了宝贵的内部资源,同时也为调试提供了方便.使用方法如下: 1 将下面的SWO_ ...

  9. 不能向Github提交某一類型的文件

    之前在github上建了6個project,但是其中有一個不能提交jar文件,其他的都可以.後來發現原來在項目中有一個叫.gitignore的文件,其他項目里的都是/bin,但是那個不能提交jar的項 ...

  10. Ecshop(二次开发) - 后台添加左侧菜单导航

    1.链接地址:修改 admin\includes\inc_menu.php 文件. $modules['17_syn_data']['view_syn']        =    'synchroni ...