Swift学习—流程控制

知识点:

  1. for in循环中的变量可以使用下划线_,意思是不需要用到此变量,系统就不会给变量分配存储空间
  2. switch中case后面必须有可执行的语句,如果有许多结果需要执行同一个语句的话,swift支持多条件匹配
  3. switch支持范围匹配
  4. switch可以匹配元组数据
  5. switch可以绑定数值
  6. switch中的case可以使用where来增加判断条件
  7. fallthrough关键字,当执行完前case后,会接着执行fallthrough后面的case或者default语句,fallthrough后面的case语句中的判断条件不能定义变量
  8. 标签

示例代码:

//: Playground - noun: a place where people can play

import UIKit

// 1、for in循环
// 这里的i是let型,即常量,如果在循环体重更改i的值的话会报错
for i in 1...4 {
    println("***********\(i)")
}
// 如果没用到i值的话,可以将其写成下划线_,这样系统就不会为i开辟存储空间
for _ in 1...4 {
    println("***********")
}

// 2、switch语句
// switch要求必须处理所有情况,否则报错。所以default一般是不省略
// swift中switch语句的参数可以是字符串
// swift中的switch的case中没有break
let flag = "abc"
switch flag {
    case "abc":
        println("abc")
    case "bcd":
        println("bcd")
    case "def":
        println("def")
    default:
        println("default")
}

// switch中case后面必须有可执行的语句,如果有许多结果需要执行同一个语句的话,swift支持多条件匹配
var gread = 90 / 10
switch gread {
    case 10, 9:
        println("优秀")
    case 8, 7:
        println("良好")
    case 6:
        println("及格")
    default:
        println("不及格")
}

// switch中的范围匹配
var score = 95
switch score {
    case 90...100:
        println("优秀")
    case 89...60:
        println("良好")
    default:
        println("不及格")
}

// switch匹配元组数据
// 判断point是否在一个X轴为-2...2,Y轴为-2...2的矩形框内
let point = (1, 1)
switch point {
    case (0, 0):
        println("这个点是坐标原点")
//    这里的下划线_可以理解为忽略掉X轴的值,或者理解为任何值都行
    case (_, 0):
        println("这个点在X轴上")
    case (0, _):
        println("这个点在Y轴上")
    case (-2...2, -2...2):
        println("这个点在一个X轴为-2...2,Y轴为-2...2的矩形框内")
    default:
        println("这个点在矩形之外")
}

// case的数值绑定
let point1 = (10, 0)
switch point1 {
    case (let x, 0):
        println("点位于X轴上,X值为\(x)")
    case (0, let y):
        println("点位于Y轴上,Y值为\(y)")
//    这里的写法相当于case (let x, let y)
    case let (x, y):
        println("X值为\(x),Y值为\(y)")
}

// switch中的case可以使用where来增加判断条件
let point2 = (10, -10)
switch point2 {
    case let (x, y) where x == y:
        println("单调递增")
    case let (x, y) where x == -y:
        println("单调递减")
    default:
        println("不在这两条线上")
}

// fallthrough
// 当执行完前case后,会接着执行fallthrough后面的case或者default语句
// fallthrough后面的case语句中的判断条件不能定义变量
let num = 20
var str = "\(num)是个"
switch num {
    case 0...50:
        str += "0~50之间的"
        fallthrough
    default:
        str += "整数"
}

// 3、标签
out: for _ in 1...2 {

    for _ in 1...3 {
        println("start")

//        这里的break是跳出当前循环
//        break

//        这里的break是跳出父循环,out就是标签
        break out
    }

    println("==========")
}
时间: 2024-08-02 17:22:26

Swift学习—流程控制的相关文章

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 {

Swift的流程控制和函数

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

我的java学习の流程控制作业の人民币转换

import java.util.*; class 人民币转换作业{/***** 先判断是否为零,不是零正常for循环:新+unit+result: 为零则先判断是否消单位(只要不是万和亿都消单位), 再判断是否消零(上一个数是非零的数,且单位不是万和亿,正常输出), (上一个数是零,或单位是万和亿,零省去)(第一个零要消去) 否则正常输出:  ******/public static void main(String[] args){//需要转换的数:int a=210540080; //空字

初学swift笔记 流程控制(五)

1 import Foundation 2 3 for var i=1; i<=10; i++ { 4 println(i) 5 } 6 7 let str1="adl;fjasdfl;ouewrouqwperuadf" 8 for c in str1 { 9 switch c { 10 case "a","f","o": 11 println(c) 12 13 default: 14 var t=""

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

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

swift基础之流程控制

?Swift 流程控制简介 ?Swift提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环, 基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码 的break和continue语句. ?除了 C 语言里面传统的for条件递增(for-condition-increment)循环,Swift 还增 加了for-in循环,用来更简单地遍历数组(array),字典(dictionary),区间 (range),字符串(string)和其他

Swift的基本类型和流程控制

Swift  是一门静态的强类型语言.它以简单.干净.可读性好等特点著称. 1. 为什么是静态语言? 首先静态语言比之动态语言,更具有安全性.它不允许类型之间自动的进行转换,必须要显示的转换.Swift是类型安全的,它会在编译的时候就检查你的代码,任何类型不匹配时都会报错.这使得编程人员能够尽快捕获并尽可能早地在开发过程中修正错误.但是,这并不意味着你必须指定每一个常量和变量所声明的类型.如果不指定你需要的类型,Swift使用类型推导来指定出相应的类型.类型推导使编译器在编译的时候通过你提供的初

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         

黑 马 程 序 员_视频学习总结&lt;c语言&gt;----02 printf和scanf函数、基本语句和运算、流程控制、函数、数组、字符串

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.printf函数 1.在使用peintf函数前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据,其中使用格式是 printf(“字符串”) :或者 printf(“字符串”, 格式符参数): 2.常用的格式符及其含义如图所示 3.格式符还可以添加输出宽度 二.scanf函数 1.在使用scanf函