自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

流程控制,一網(wǎng)打盡

網(wǎng)絡 通信技術
除此之外,還有 break 和 continue,都可以搭配循環(huán)語句和跳轉(zhuǎn)語句使用。跳轉(zhuǎn)語句在某些場景下會非常實用,但也很容易出現(xiàn)一些莫名其妙的問題,所以使用起來要更謹慎些。

[[415477]]

最近看奧運會看的我熱血沸騰,中國奧運健兒簡直太棒了,不只是成績,還有氣質(zhì),精氣神,全方位的棒。

而且這次奧運會我覺得最感動的是,看到一些年紀大的運動員拿了好成績:呂小軍 37 歲,馬龍 32,蘇炳添 32,鞏立姣 32 歲才拿了自己的第一塊奧運金牌。連這么受限于年齡的運動員都能不斷突破自己,何況我們呢?還每天在網(wǎng)上焦慮程序員 35 歲就要被優(yōu)化?

所以別給自己找年齡作為借口了,覺得年齡大了這不行那不行,干就完事了。

if-else

特點:

  • 條件語句不需要使用小括號 () 包起來;
  • 花括號 {} 必須有,并且左花括號 { 必須和 if 或 else 在同一行;
  • 在 if 之后,條件語句之前可以添加變量初始化語句,使用 ; 分隔。
  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     if 7%2 == 0 { 
  7.         fmt.Println("7 is even"
  8.     } else { 
  9.         fmt.Println("7 is odd") // 7 is odd 
  10.     } 
  11.  
  12.     if 8%4 == 0 { 
  13.         fmt.Println("8 is divisible by 4") // 8 is divisible by 4 
  14.     } 
  15.  
  16.     if num := 9; num < 0 { 
  17.         fmt.Println(num, "is negative"
  18.     } else if num < 10 { 
  19.         fmt.Println(num, "has 1 digit") // 9 has 1 digit 
  20.     } else { 
  21.         fmt.Println(num, "has multiple digits"
  22.     } 

switch

特點:

  • 左花括號 { 必須和 switch 在同一行;
  • 條件表達式不限制常量或者整數(shù);
  • switch 后可添加變量初始化語句,使用 ; 分割;
  • 可以不設定條件表達式,在此種情況下,整個 switch 結構與多個 if-else 的邏輯作用等同;
  • 單個 case 中可以出現(xiàn)多個結果選項;
  • 在 case 中添加 fallthrough 關鍵字,會繼續(xù)執(zhí)行緊跟的下一個 case,不需要判斷 case 的條件語句;
  • switch 支持 default 語句,當所有 case 都不滿足時,執(zhí)行 default 語句。
  1. package main 
  2.  
  3. import ( 
  4.     "fmt" 
  5.     "time" 
  6.  
  7. func main() { 
  8.     i := 2 
  9.     fmt.Print("write ", i, " as "
  10.     switch i { 
  11.     case 1: 
  12.         fmt.Println("one"
  13.     case 2: 
  14.         fmt.Println("two") // write 2 as two 
  15.         fallthrough 
  16.     case 3: 
  17.         fmt.Println("three") // three 
  18.     case 4, 5, 6: 
  19.         fmt.Println("four, five, six"
  20.     } 
  21.  
  22.     switch num := 9; num { 
  23.     case 1: 
  24.         fmt.Println("one"
  25.     default
  26.         fmt.Println("nine") // nine 
  27.     } 
  28.  
  29.     switch time.Now().Weekday() { 
  30.     case time.Saturday, time.Sunday: 
  31.         fmt.Println("it's the weekend"
  32.     default
  33.         fmt.Println("it's a weekday") // it's a weekday 
  34.     } 
  35.  
  36.     t := time.Now() 
  37.     switch { 
  38.     case t.Hour() < 12: 
  39.         fmt.Println("it's before noon"
  40.     default
  41.         fmt.Println("it's after noon") // it's after noon 
  42.     } 

for

特點:

  • 條件表達式不需要使用小括號 () 包起來;
  • 花括號 {} 必須有,并且左花括號 { 必須和 for 在同一行;
  • 支持 continue 和 break。
  1. package main 
  2.  
  3. import ( 
  4.     "fmt" 
  5.  
  6. func main() { 
  7.     i := 1 
  8.     // 只有條件 
  9.     for i <= 3 { 
  10.         fmt.Println(i) 
  11.         i = i + 1 
  12.     } 
  13.  
  14.     // 有變量初始化和條件 
  15.     for j := 7; j <= 9; j++ { 
  16.         fmt.Println(j) 
  17.     } 
  18.  
  19.     // 死循環(huán) 
  20.     for { 
  21.         fmt.Println("loop"
  22.         break 
  23.     } 
  24.  
  25.     // 遍歷數(shù)組 
  26.     a := [...]int{10, 20, 30, 40} 
  27.     for i := range a { 
  28.         fmt.Println(i) 
  29.     } 
  30.     for i, v := range a { 
  31.         fmt.Println(i, v) 
  32.     } 
  33.  
  34.     // 遍歷切片 
  35.     s := []string{"a""b""c"
  36.     for i := range s { 
  37.         fmt.Println(i) 
  38.     } 
  39.     for i, v := range s { 
  40.         fmt.Println(i, v) 
  41.     } 
  42.  
  43.     // 遍歷字典 
  44.     m := map[string]int{"a": 10, "b": 20, "c": 30} 
  45.     for k := range m { 
  46.         fmt.Println(k) 
  47.     } 
  48.     for k, v := range m { 
  49.         fmt.Println(k, v) 
  50.     } 

goto,break,continue

goto 特點:

  • 只能在函數(shù)內(nèi)跳轉(zhuǎn),需要配合標簽一起使用;
  • 不能跳過內(nèi)部變量聲明語句;
  • 只能跳到同級作用域或者上層作用域內(nèi),不能跳到內(nèi)部作用域內(nèi)。
  1. package main 
  2.  
  3. import ( 
  4.     "fmt" 
  5.  
  6. func main() { 
  7.     // 跳出循環(huán) 
  8.     for i := 0; ; i++ { 
  9.         if i == 2 { 
  10.             goto L1 
  11.         } 
  12.         fmt.Println(i) 
  13.     } 
  14. L1: 
  15.     fmt.Println("Done"
  16.  
  17.     // 跳過變量聲明,不允許 
  18.     //  goto L2 
  19.     //  j := 1 
  20.     // L2: 

break 特點:

  • 單獨使用,用于跳出 break 當前所在的 for、 switch、 select 語句的執(zhí)行;
  • 和標簽一起使用,用于跳出標簽所標識的 for、 switch、 select 語句的執(zhí)行,可用于跳出多重循環(huán),但標簽和 break 必須在同一個函數(shù)內(nèi)。
  1. package main 
  2.  
  3. import ( 
  4.     "fmt" 
  5.  
  6. func main() { 
  7.     // break 跳轉(zhuǎn)到標簽處,然后跳過 for 循環(huán) 
  8. L3: 
  9.     for i := 0; ; i++ { 
  10.         for j := 0; ; j++ { 
  11.             if i >= 2 { 
  12.                 break L3 
  13.             } 
  14.             if j > 4 { 
  15.                 break 
  16.             } 
  17.             fmt.Println(i, j) 
  18.         } 
  19.     } 

continue 特點:

  • 單獨使用,用于跳出 continue 當前所在的 for 循環(huán)的本次迭代;
  • 和標簽一起使用,用于跳出標簽所標識的 for 語句的本次選代,但標簽和 continue 必須在同一個函數(shù)內(nèi)。
  1. package main 
  2.  
  3. import ( 
  4.     "fmt" 
  5.  
  6. func main() { 
  7.     // continue 跳轉(zhuǎn)到標簽處,然后執(zhí)行 i++ 
  8. L4: 
  9.     for i := 0; ; i++ { 
  10.         for j := 0; j < 6; j++ { 
  11.             if i > 4 { 
  12.                 break L4 
  13.             } 
  14.             if i >= 2 { 
  15.                 continue L4 
  16.             } 
  17.             if j > 4 { 
  18.                 continue 
  19.             } 
  20.             fmt.Println(i, j) 
  21.         } 
  22.     } 

總結

本文主要介紹了流程控制語句,分別是條件語句,選擇語句,循環(huán)語句和跳轉(zhuǎn)語句。

  • 條件語句: 對應關鍵詞 if,else 和 else if;
  • 選擇語句: 對應關鍵詞 switch,case,fallthrough 和 default;
  • 循環(huán)語句: 對應關鍵詞 for 和 range;
  • 跳轉(zhuǎn)語句: 對應關鍵詞 goto。

除此之外,還有 break 和 continue,都可以搭配循環(huán)語句和跳轉(zhuǎn)語句使用。

跳轉(zhuǎn)語句在某些場景下會非常實用,但也很容易出現(xiàn)一些莫名其妙的問題,所以使用起來要更謹慎些。

文章中的腦圖和源碼都上傳到了 GitHub,有需要的同學可自行下載。

地址: https://github.com/yongxinz/gopher/tree/main/sc

本文轉(zhuǎn)載自微信公眾號「AlwaysBeta」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系AlwaysBeta公眾號。

 

責任編輯:武曉燕 來源: AlwaysBeta
相關推薦

2024-04-26 00:25:52

Rust語法生命周期

2023-04-06 09:08:41

BPM流程引擎

2024-02-27 10:11:36

前端CSS@規(guī)則

2021-10-11 07:55:42

瀏覽器語法Webpack

2013-08-02 10:52:10

Android UI控件

2024-04-07 08:41:34

2024-08-26 10:01:50

2024-06-12 00:00:05

2010-08-25 01:59:00

2011-12-02 09:22:23

網(wǎng)絡管理NetQos

2013-10-16 14:18:02

工具圖像處理

2021-10-29 09:32:33

springboot 靜態(tài)變量項目

2019-07-24 15:30:00

SQL注入數(shù)據(jù)庫

2021-05-20 11:17:49

加密貨幣區(qū)塊鏈印度

2023-09-06 18:37:45

CSS選擇器符號

2020-02-21 08:45:45

PythonWeb開發(fā)框架

2020-10-19 06:43:53

Redis腳本原子

2023-04-03 08:30:54

項目源碼操作流程

2009-04-02 10:17:00

交換機產(chǎn)品選購

2023-09-26 00:29:40

CSS布局標簽
點贊
收藏

51CTO技術棧公眾號