亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

GO語言學(xué)習(xí)之語句塊的實現(xiàn)

 更新時間:2025年06月30日 08:33:32   作者:唯獨不開心  
本文主要介紹了GO語言學(xué)習(xí)之語句塊的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

順序語句

順序語句,顧名思義就是每條語句依次執(zhí)行。

流程圖:

示例:

package main

import "fmt"

func main() {
    var a int = 10
    var b int = 20

    sum := a + b
    fmt.Printf("a + b = %d", sum);
}

在這個例子中,變量 a和 b依次被聲明和初始化,然后執(zhí)行加法運(yùn)算并將結(jié)果賦值給 sum,最后打印輸出結(jié)果。這些語句按照它們在代碼中出現(xiàn)的順序依次執(zhí)行。

分支語句

if 分支語句

if - else語句:用于根據(jù)條件執(zhí)行不同的代碼塊。

流程圖:

示例:

package main

import "fmt"

func main() {
    condition := []bool {true, false}

    if condition[0] {
        fmt.Println("condition[0] is true")
    } else {
        fmt.Println("condition[0] is false")
    }

    if condition[1] {
        fmt.Println("condition[1] is true")
    } else {
        fmt.Println("condition[1] is false")
    }
}

if - else if - else鏈:用于處理多個互斥條件。

流程圖:

示例:

package main

import "fmt"

func main() {
    condition := []int {1, 2, 3}

    fmt.Println("condition[3] = ", condition)
    if condition[0] == 1 {
        fmt.Println("condition[0] == 1")
    } else if condition[0] == 2 {
        fmt.Println("condition[0] == 2")
    } else {
        fmt.Println("condition[0] not equal 1 or 2")
    }

    if condition[1] == 1 {
        fmt.Println("condition[1] == 1")
    } else if condition[1] == 2 {
        fmt.Println("condition[1] == 2")
    } else {
        fmt.Println("condition[1] not equal 1 or 2")
    }

    if condition[2] == 1 {
        fmt.Println("condition[2] == 1")
    } else if condition[2] == 2 {
        fmt.Println("condition[2] == 2")
    } else {
        fmt.Println("condition[2] not equal 1 or 2")
    }
}

switch分支語句

switch - case 語句:是一種更簡潔的多分支選擇結(jié)構(gòu),根據(jù)表達(dá)式的值來選擇執(zhí)行哪個 case 分支。

    1. switch 可以用在其他類型上,case 后的數(shù)值必須和switch作用的變量類型一致
    2. case 是無序的
    3. case后的數(shù)值是唯一的, 
    4. default語句是可選的
    5. case分支默認(rèn)不需要加 break直接退出
    6. 如果想繼續(xù)執(zhí)行需要加上fallthrough
    7. 可以省略switch 后面的變量,相當(dāng)于每個分支是:true 則執(zhí)行對應(yīng)的語句塊
    8. break 可以用在switch 中, 也可以使用在for 循環(huán)語句中
    9. break 用于強(qiáng)制結(jié)束case語句,從而結(jié)束switch分支
    10. 遇到 fallthrough 無需匹配后續(xù)分支,繼續(xù)執(zhí)行

流程圖:

示例:

package main

import "fmt"

const (
    MONDAY    = 1,
    TUESDAY   = 2,
    WEDNESDAY = 3,
    THURSDAY  = 4,
    FRIDAY    = 5,
    SATURDAY  = 6,
    SUNDAY    = 7,
)

func check_week_days(day int)
{
    switch day {
    case MONDAY:
        fmt.Println("Monday")
    case TUESDAY:
        fmt.Println("Tuesday")
    case WEDNESDAY:
        fmt.Println("Wednesday")
    case THURSDAY:
        fmt.Println("Thursday")
    case FRIDAY:
        fmt.Println("Friday")
    case SATURDAY:
        fmt.Println("Saturday")
    case SUNDAY:
        fmt.Println("Sunday")
    default:
        fmt.Printf("Error day value %d\n", day)
    }
}

func main() {
    days := []{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, 100 }

    for i := 0; i < len(days); i++ {
        fmt.Println("input day is : ", days[i])
        check_week_days(days[i])
    }
}
package main

import "fmt"

func check_month(year int, month int) {
	day := 0
	switch month {
	case 1, 3, 5, 7, 8, 10, 12:
		day = 31
	case 4, 6, 9, 11:
		day = 30
	case 2:
		if year%400 == 0 || year%4 == 0 && year%100 != 0 {
			day = 29
		} else {
			day = 28
		}
	default:
		fmt.Println("input month outof range, month is ", month)
		return
	}
	fmt.Println(month, "月有 ", day, "天")
}

func main() {
	year := 1998
	month := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12}

	for i := 0; i < len(month); i++ {
		fmt.Println("判斷的 month is ", month[i])
		check_month(year, month[i])
	}
}

還有一種特殊的 switch case 語句,不帶條件的使用方式,此時,判斷分支的case 分支的 布爾值是否為 true,執(zhí)行為 true的分支。但是,這里有一個有趣的地方就是,這里的每個分支檢測的應(yīng)該是同一個變量的布爾表達(dá)式,我用示例代碼證明了,這個疑問。

正確的使用姿勢:

package main

import "fmt"

func check_level(a int) {
    switch {
    case a > 100:
        fmt.Println("more than scope")
    case a > 90:
        fmt.Println("A")
    case a > 80:
        fmt.Println("B")
    case a > 70:
        fmt.Println("C")
    default:
        fmt.Println("D")
    }
}

func main() {
    a := []int {70, 81,91, 101, 2}
    for i := 0;i < len(a); i++ {
        fmt.Println("input value : ", a[i])
        check_level(a[i])
    }
}

多個變量的結(jié)果,結(jié)果不確定,你多執(zhí)行幾次,還不一樣,這樣的代碼不可靠?。。?!

package main

import "fmt"

func main() {
    a := 2
    b := 1
    c := 1
    switch {
    case a == 1:
        fmt.Println("case a")
    case b == 1:
        fmt.Println("case b")
    case c == 1:
        fmt.Println("case c")
    default:
        fmt.Println("a and b not equal 1")
    }
}

循環(huán)語句

for循環(huán)語句: Go 語言中只有 for 這一種循環(huán)結(jié)構(gòu),但它可以實現(xiàn)類似其他語言中 for、while 和 do - while 循環(huán)的功能。

經(jīng)典for循環(huán):

語法:for init; condition; post { 循環(huán)體 }

其中,init 是初始化語句,condition 是循環(huán)條件,post 是每次循環(huán)結(jié)束后執(zhí)行的語句。

流程圖:

示例 1:

package main

import "fmt"

func main() {
    value := []int {1,2,3,4,5,6,7,8,9,10}
    sum := 0

    for i:=0;i < len(value);i++ {
        sum += value[i]
    }
    fmt.Println("對數(shù)組 ", value, " 求和的結(jié)果是:", sum)
}

示例 2:

package main

import "fmt"

func main() {
    value := []int{1,2,3,4,5,6,7,8,9,10}
    sum := 0

    for i, v := range value {
        fmt.Println("當(dāng)前索引 ", i, " 當(dāng)前值 ", v)
        sum += v
    }
    fmt.Println("求數(shù)組 ", value, " 和的結(jié)果: ", sum)
}

while風(fēng)格的for循環(huán):

省略 init 和 post 部分,只保留 condition,類似其他語言中的 while 循環(huán)。

流程圖:

示例:

package main

import "fmt"


func main() {
    value := []int {1,2,3,4,5,6,7,8,9,10}
    sum := 0
    i := 0

    for i < len(value) {
        sum += value[i]
        i++
    }
    fmt.Println("對數(shù)組 ", value, " 求和的結(jié)果:", sum)
}

無限循環(huán):

省略所有部分,即 for { },可以通過 break 語句跳出循環(huán)。

流程圖:

示例 1:

package main

import "fmt"

func main() {
    value := []int{1,2,3,4,5,6,7,8,9,10}
    sum := 0
    i := 0

    for {
        if i < len(value) {
            sum += value[i]
            fmt.Println("和 ", sum, "當(dāng)前值 ", value[i])
            i++
        } else {
            break;
        }
    }
    fmt.Println("對數(shù)組 ", value, " 求和的結(jié)果:", sum)
}

示例 2:(補(bǔ)充goto語句的使用)

package main

import "fmt"

func main() {
    for i := 1;i < 10;i++ {
        j := 1
start:
        if (j <= i) {
            fmt.Printf("%d * %d = %d ", i, j, i * j)
            j++
            goto start;
        } else {
            fmt.Println()
        }
    }
}

到此這篇關(guān)于GO語言學(xué)習(xí)之語句塊的實現(xiàn)的文章就介紹到這了,更多相關(guān)GO 語句塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • GO語言ini配置文件的讀取的操作

    GO語言ini配置文件的讀取的操作

    這篇文章主要介紹了GO語言ini配置文件的讀取的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • go實現(xiàn)圖片拼接與文字書寫的方法實例

    go實現(xiàn)圖片拼接與文字書寫的方法實例

    這篇文章主要給大家介紹了關(guān)于go實現(xiàn)圖片拼接與文字書寫的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • Go官方限流器的用法詳解

    Go官方限流器的用法詳解

    限流器是提升服務(wù)穩(wěn)定性的非常重要的組件,本文主要介紹了Go官方限流器的用法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 一文初探Go語言中的reflect反射包

    一文初探Go語言中的reflect反射包

    這篇文章主要和大家分享一下Go語言中的reflect反射包,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一定的幫助,需要的小伙伴可以參考一下
    2022-12-12
  • 利用Go語言實現(xiàn)輕量級OpenLdap弱密碼檢測工具

    利用Go語言實現(xiàn)輕量級OpenLdap弱密碼檢測工具

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語言實現(xiàn)輕量級OpenLdap弱密碼檢測工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-09-09
  • Golang 錯誤捕獲Panic與Recover的使用

    Golang 錯誤捕獲Panic與Recover的使用

    對于Go語言的錯誤是通過返回值的方式,本文主要介紹了Golang 錯誤捕獲Panic與Recover的使用,文中根據(jù)實例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Golang集成FFmpeg的音視頻處理的實現(xiàn)

    Golang集成FFmpeg的音視頻處理的實現(xiàn)

    FFmpeg是一個開源的音視頻處理工具,廣泛用于視頻轉(zhuǎn)換、截圖、處理和流媒體推送等操作,本文主要介紹了Golang集成FFmpeg的音視頻處理的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • Go Slice擴(kuò)容的這些坑你踩過哪些

    Go Slice擴(kuò)容的這些坑你踩過哪些

    這篇文章主要為大家詳細(xì)介紹了Golang中對切片Slice的append操作時會遇到的踩坑經(jīng)驗分享,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • Go計算某段代碼運(yùn)行所耗時間簡單實例

    Go計算某段代碼運(yùn)行所耗時間簡單實例

    這篇文章主要給大家介紹了關(guān)于Go計算某段代碼運(yùn)行所耗時間的相關(guān)資料,主要介紹了Golang記錄計算函數(shù)執(zhí)行耗時、運(yùn)行時間的一個簡單方法,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-11-11
  • Golang二維切片初始化的實現(xiàn)

    Golang二維切片初始化的實現(xiàn)

    這篇文章主要介紹了Golang二維切片初始化的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論