中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

if else、switch、for的特點是什么

發布時間:2022-02-19 10:15:20 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本篇內容介紹了“if-else、switch、for的特點是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

流程控制是計算機運算領域的用語,意指在程序運行時,個別的指令(或是陳述、子程序)運行或求值的順序。不論是在聲明式編程語言或是函數編程語言中,都有類似的概念。

if else、switch、for的特點是什么

if-else

if-else特點:

條件語句不需要使用小括號()包起來;

花括號{}必須有,并且左花括號{必須和if或else在同一行;

在if之后,條件語句之前可以添加變量初始化語句,使用;分隔。

package main

import "fmt"func main() {
   if 7%2 == 0 {
       fmt.Println("7 is even")
   } else {
       fmt.Println("7 is odd") // 7 is odd
   }

   if 8%4 == 0 {
       fmt.Println("8 is divisible by 4") // 8 is divisible by 4
   }

   if num := 9; num "is negative")
   } else if num "has 1 digit") // 9 has 1 digit
   } else {
       fmt.Println(num, "has multiple digits")
   }
}

switch

switch特點:

左花括號 { 必須和 switch 在同一行;

條件表達式不限制常量或者整數;

switch 后可添加變量初始化語句,使用 ; 分割;

可以不設定條件表達式,在此種情況下,整個 switch 結構與多個 if-else 的邏輯作用等同;

單個 case 中可以出現多個結果選項;

在 case 中添加 fallthrough 關鍵字,會繼續執行緊跟的下一個 case,不需要判斷 case 的條件語句;

switch 支持 default 語句,當所有 case 都不滿足時,執行 default 語句。

package main

import (
   "fmt"   "time")

func main() {
   i := 2
   fmt.Print("write ", i, " as ")
   switch i {
   case 1:
       fmt.Println("one")
   case 2:
       fmt.Println("two") // write 2 as two
       fallthrough
   case 3:
       fmt.Println("three") // three
   case 4, 5, 6:
       fmt.Println("four, five, six")
   }

   switch num := 9; num {
   case 1:
       fmt.Println("one")
   default:
       fmt.Println("nine") // nine
   }

   switch time.Now().Weekday() {
   case time.Saturday, time.Sunday:
       fmt.Println("it's the weekend")
   default:
       fmt.Println("it's a weekday") // it's a weekday
   }

   t := time.Now()
   switch {
   case t.Hour() s before noon")
   default:
       fmt.Println("it's after noon") // it's after noon
   }
}

for

for特點:

條件表達式不需要使用小括號 () 包起來;

花括號 {} 必須有,并且左花括號 { 必須和 for 在同一行;

支持 continue 和 break。

package main

import (
   "fmt")

func main() {
   i := 1
   // 只有條件
   for i for j := 7; j for {
       fmt.Println("loop")
       break   }

   // 遍歷數組
   a := [...]int{10, 20, 30, 40}
   for i := range a {
       fmt.Println(i)
   }
   for i, v := range a {
       fmt.Println(i, v)
   }

   // 遍歷切片
   s := []string{"a", "b", "c"}
   for i := range s {
       fmt.Println(i)
   }
   for i, v := range s {
       fmt.Println(i, v)
   }

   // 遍歷字典
   m := map[string]int{"a": 10, "b": 20, "c": 30}
   for k := range m {
       fmt.Println(k)
   }
   for k, v := range m {
       fmt.Println(k, v)
   }
}

goto,break,continue

goto 特點:

只能在函數內跳轉,需要配合標簽一起使用;

不能跳過內部變量聲明語句;

只能跳到同級作用域或者上層作用域內,不能跳到內部作用域內。

package main

import (
   "fmt")

func main() {
   // 跳出循環
   for i := 0; ; i++ {
       if i == 2 {
           goto L1
       }
       fmt.Println(i)
   }
L1:
   fmt.Println("Done")

   // 跳過變量聲明,不允許
   //  goto L2
   //  j := 1
   // L2:
}

break 特點:

單獨使用,用于跳出 break 當前所在的 for、 switch、 select 語句的執行;

和標簽一起使用,用于跳出標簽所標識的 for、 switch、 select 語句的執行,可用于跳出多重循環,但標簽和 break 必須在同一個函數內。

package main

import (
   "fmt")

func main() {
   // break 跳轉到標簽處,然后跳過 for 循環
L3:
   for i := 0; ; i++ {
       for j := 0; ; j++ {
           if i >= 2 {
               break L3
           }
           if j > 4 {
               break           }
           fmt.Println(i, j)
       }
   }
}

continue 特點:

單獨使用,用于跳出 continue 當前所在的 for 循環的本次迭代;

和標簽一起使用,用于跳出標簽所標識的 for 語句的本次選代,但標簽和 continue 必須在同一個函數內。

package main

import (
   "fmt")

func main() {
   // continue 跳轉到標簽處,然后執行 i++
L4:
   for i := 0; ; i++ {
       for j := 0; j if i > 4 {
               break L4
           }
           if i >= 2 {
               continue L4
           }
           if j > 4 {
               continue           }
           fmt.Println(i, j)
       }
   }
}

除此之外,還有 break 和 continue,都可以搭配循環語句和跳轉語句使用。跳轉語句在某些場景下會非常實用,但也很容易出現一些莫名其妙的問題,所以使用起來要更謹慎些。

“if-else、switch、for的特點是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昂仁县| 城固县| 禹州市| 南投市| 莎车县| 芦山县| 顺昌县| 盖州市| 徐闻县| 北票市| 新兴县| 彰化县| 监利县| 宁强县| 满洲里市| 蓝田县| 乾安县| 霍城县| 合山市| 普兰店市| 浦北县| 安仁县| 泰兴市| 柞水县| 石台县| 抚州市| 日喀则市| 南部县| 鸡西市| 塔河县| 石景山区| 怀来县| 同仁县| 丘北县| 上犹县| 沙湾县| 雷州市| 恩平市| 阿克苏市| 巴南区| 大埔区|