【Swift學習】Swift編程之旅---控制流(九)

来源:http://www.cnblogs.com/salam/archive/2016/04/20/5406635.html
-Advertisement-
Play Games

Swift提供了類似C語言的流程式控制制結構,包括可以多次執行任務的for和while迴圈,基於特定條件選擇執行不同代碼分支的if和switch語句,還有控制流程跳轉到其他代碼的break和continue語句。 除了C裡面傳統的 for 條件遞增迴圈,Swift 還增加了 for-in 迴圈,用來更簡 ...


  Swift提供了類似C語言的流程式控制制結構,包括可以多次執行任務的for和while迴圈,基於特定條件選擇執行不同代碼分支的if和switch語句,還有控制流程跳轉到其他代碼的break和continue語句。

除了C裡面傳統的 for 條件遞增迴圈,Swift 還增加了 for-in 迴圈,用來更簡單地遍曆數組(array),字典(dictionary),範圍(range),字元串(string)和其他序列類型。 Swift 的 switch 語句比 C 語言中更加強大。在 C 語言中,如果某個 case 不小心漏寫了 break,這個 case 就會“掉入”下一個 case,Swift 無需寫 break,所以不會發生這種“掉入”的情況。Case 還可以匹配更多的類型模式,包括範圍(range)匹配,元組(tuple)和特定類型的描述。switch case 語句中匹配的值可以是由 case 體內部臨時的常量或者變數決定,也可以由 where 分句描述更複雜的匹配條件。     For-In迴圈    它可以遍曆數字範圍,數組元素,字元串的字元。   遍歷範圍
for index in 1...5 {
    print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25

 

  遍曆數組

let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
    print("Hello, \(name)!")
}
// Hello, Anna!
// Hello, Alex!
// Hello, Brian!
// Hello, Jack!

 

  遍歷字典

let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
    print("\(animalName)s have \(legCount) legs")
}
// ants have 6 legs
// cats have 4 legs
// spiders have 8 legs

 

 

  While迴圈

  While 迴圈運行一系列語句直到條件變成 false。這類迴圈適合使用在第一次迭代前迭代次數未知的情況下。swift提供2種while迴圈(while,repeat-while)。

 

  while

  普通while迴圈,在迭代前檢查條件是否為true,是才會進行迭代

  

 

  repeat-while

  它和 while 的區別是在判斷迴圈條件之前,先執行一次迴圈的代碼塊,然後重覆迴圈直到條件為 false。

 

  條件語句

  if語句

  和c一樣這裡不做介紹

 

  switch語句

  switch語句會嘗試把某個值與若幹個模式(pattern)進行匹配。根據第一個匹配成功的模式,switch語句會執行對應的代碼。當有可能的情況較多時,通常用switch語句替換if語句。

switch語句都由多個case構成。為了匹配某些更特定的值,Swift 提供了幾種更複雜的匹配模式switch語句必須是完備的。這就是說,每一個可能的值都必須至少有一個case塊與之對應。在某些不可能涵蓋所有值的情況下,你可以使用預設(default)塊滿足該要求,這個預設塊必須在switch語句的最後面。與C語言和Objective-C中的switch語句不同,在 Swift 中,當匹配的case塊中的代碼執行完畢後,程式會終止switch語句,而不會繼續執行下一個case塊。這也就是說,不需要在case塊中顯式地使用break語句。這使得switch語句更安全、更易用,也避免了因忘記寫break語句而產生的錯誤。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 來自遠方的“僵屍之手” 最近,安天AVL移動安全和獵豹移動安全實驗室共同截獲病毒“僵屍之手“——一種偽裝成正常應用,並通過遠程指令控制中毒手機,實施惡意行為的病毒。該病毒通常偽裝成正常的工具類應用或娛樂類應用進行傳播(如下圖所示)。“僵屍之手”在用戶未察覺其為病毒的情況下安裝進入用戶手機,成功繞開部 ...
  • 1.tableView隱藏滾動條 2.關於屬性 使用assign: 對基礎數據類型 (NSInteger,CGFloat)和C數據類型(int, float, double, char, 等等) 使用copy: 對NSString 使用copy: 對NSString 使用retain(strong) ...
  • 一,效果圖。 二,代碼。 RootViewController.m ...
  • 1:iOS 使用NJKWebViewProgress做webview進度條 2:解決輸入框UITextField關於拼音或部首被當作內容響應 這裡主要使用了兩個知識: 輸入法輸入時,拼音字母或者筆畫處於選中狀態,可以使用 markedTextRange 獲取到 普通輸入,以及將輸入法的待選字填入輸入 ...
  • 先把字元串轉換成時間NSDate 然後再把時間轉換成我們需要的時間格式的字元串 其中需要註意的是 EEE 和 MMM 所代表的含義 會隨著 NSDateForMatter 的 Locale 屬性的不同 而改變 當Locale 屬性為 ...
  • 最近在使用iOS的可變數組時出現了一個錯誤,報錯信息為: reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object' 字面的意思就是可變數組的方法發送給了一個不可變的對象。 聲明和初始 ...
  • 樣式和主題(Styles and Themes) 一個樣式(Style)是一個包含了指定樣子和格式的作用於視圖控制項(View)或者窗體(Window)屬性集合。一個style可以指定很多屬性,比如 高度,填充,字體顏色,字體尺寸,背景色等。一個Style在xml資源文件中定義,並且和在xml中指定的 ...
  • 源文件這裡有http://pan.baidu.com/s/1pLlDm6f UITableView與UISearchController搜索及上拉載入,下拉刷新 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...