swift 3.0 -流程控制

//
//  main.swift
//  swift-流程控制
//
//  Created by yidong on 16/9/28.
//  Copyright © 2016年 东哥. All rights reserved.
//

import Foundation

/*
 
 swift 流程控制主要分为: 顺序   分支   循环
 
 1.顺序:从上到下依次执行,遇到函数调用,调用完毕函数继续执行
 
 
 2.分支:根据分支条件进行分支
 
 (1)if{} else{}
 
 (2)switch {case:...}
 
 
 3.循环:循环执行,遇到结束条件
 
 (1)while 和 do{} while
 
 (2) for in 和 for(){}
 
 4.循环分支中,控制流程的四个关键字 continue  break  fallthrough  return(多用于函数中) 相关说明
 
 
 */
 
 func testfunc()
 
 {
 
 
 //1.顺序(略)---------------------------------------------------------------------------------------
 
 
 
 //2.分支--------------------------------------------------------------------------------------------
 
 //声明一个Bool 类型的变量 赋值为true
 
 var bgen:Bool = true
 
 
 //分支
 
 if(bgen)
 
 {
 
 print(bgen);
 
 }else
 
 {
 
 print(bgen);
 
 }
 
 
 
 //分支 switch {case:...}
 
 /*
 
 特点:(1)支持任意类型的数据以及各种比较操作(不仅仅是整数以及测试相等)
 
 (2)运行switch中匹配到的子句之后,程序会退出switch语句 ,并不会继续向下运行,所以不需要在每个子句结尾写break  如果想继续执行 在原来break 的位置写 fallthrough  即可
 
 */
 
 
 
 switch ()中的值可以是Int
 
 var value=123;
 
 switch(value)
 
 {
 
 case 123:
 
 print("1")
 
 
 fallthrough; //继续执行
 
 case 2:
 
 print("2")
 
 
 
 case 3:
 
 print("3")
 
 default:
 
 print("没有匹配的")
 
 }
 
 
 
 
 
 //switch ()中的值可以是字符串
 
 switch("理想")
 
 {
 
 case "理想":
 
 print("理想")
 
 
 
 case "理想2":
 
 print("理想2")
 
 
 
 case "理想3":
 
 print("理想3")
 
 default:
 
 print("没有匹配的字符")
 
 }
 
 
 
 
 
 //case 中可以有多个匹配项
 
 switch("abc")
 
 {
 
 case "123":
 
 print("123");
 
 
 case "456","abc":
 
 print("123  abc ");
 
 
 default:
 
 print("没有找到合适的匹配");
 
 }
 
 //   比较操作   hasSuffix 函数是判断字符字符串是不是以其参数结尾
 
 switch("理想 and swift")
 
 {
 
 case let x  where x.hasSuffix("swift"):  // 注意此时的 x 的值就是switch()中的值 where 额外的判断条件
 
 print("swift");
 
 case  "理想":
 
 print("理想");
 
 default:
 
 print("me");
 
 }
 
 
 
 //2.循环--------------------------------------------------------------------------------------------
 
 //循环
 
 //while(){} 和 repeat{}while()  重复运行一段代码直到不满足条件。循环条件可以在开头也可以在结尾
 
 
 
 var i:Int = 0;
 
 while( i<10)
 
 {
//       i++;(Swift3.0之后就不用了)
      i += 1;
 
     print(i);
 
 }
 repeat//(用 repeat while 取代了 do while)
 
 {
//    i--;(Swift3.0之后就不用了)
    i -= 1;
 
     print(i);
 
 
 }while(i>0);
 
 
 //for in
 
 //使用for-in循环来遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符

 
 for index in 1...5
 
 {
 
 print("index=\(index)");
 
 
 
 }
 
 //解释... 区间的意思    1...5 的意思 [1,5]  1..5 的意思  [1,5)    index是一个每次循环遍历开始时被自动赋值的常量。这种情况下,index在使用前不需要声明,只需要将它包含在循环的声明中,就可以对其进行隐式声明,而无需使用let关键字声明。 index常量只存在于循环的生命周期里。如果你想在循环完成后访问index的值,又或者想让index成为一个变量而不是常量,你必须在循环之前自己进行声明。
 
 
 
 //如果你不需要知道区间内每一项的值,你可以使用下划线(_)替代变量名来忽略对值的访问
 
 var num=0;
 
 for _ in 1...5
 
 {
 
 num += 1;
 
 print("num =\(num)");
 
 }
 
    
 //遍历字符
 
 for str in "ABCDE".characters
 
 {
 
 print("str=\(str)");
    
 
 }
 
 
 //for(){  }
 
 //Swift 3 之后去C化了
 
 for i in 0...10
 
 {
 
 print("i=\(i)");
    
 }
 
 //4.循环分支中,控制流程的四个关键字说明--------------------------------------------------------------------------------------------
 
 //continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。就好像在说“本次循环迭代我已经执行完了”,但是并不会离开整个循环体。
 
 //break语句会立刻结束整个控制流的执行。当你想要更早的结束一个switch代码块或者一个循环体时,你都可以使用break语句。当在一个switch代码块中使用break时,会立即中断该switch代码块的执行,并且跳转到表示switch代码块结束的大括号(})后的第一行代码。
 
 
 //fallthrough  fallthrough关键字不会检查它下一个将会落入执行的 case 中的匹配条件。fallthrough简单地使代码执行继续连接到下一个 case 中的执行代码,这和 C 语言标准中的switch语句特性是一样的
 

 //return  在函数中具体讲
 
 }

 // 调用函数
 
 testfunc();
 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值