GO語言——條件判斷與基礎(chǔ)函數(shù)(2)

一、流程控制

程序設(shè)計語言的流程控住語句,用于設(shè)定計算執(zhí)行的次序,建立程序的邏輯結(jié)構(gòu)。可以說,流程控制語句是整個程序的骨架。
從根本上講,流程控制只是為了控制程序語句的執(zhí)行順序,一般需要與各種條件配合,因此,在各種流程中,會加入條件判斷語句。流程控制語句一般起以下3個作用:

  • 選擇: 即根據(jù)條件跳轉(zhuǎn)到不同的執(zhí)行序列;
  • 循環(huán),即根據(jù)條件反復(fù)執(zhí)行某個序列,當然每一次循環(huán)執(zhí)行的輸入輸出可能會發(fā)生變化;
  • 跳轉(zhuǎn),即根據(jù)條件返回到某執(zhí)行序列。

go語言支持如下的幾種流程控制語句:

  • 條件語句:所對應(yīng)的的關(guān)鍵字為if ,else和else if
  • 選擇語句:所對應(yīng)的的關(guān)鍵字為switch,case和select
  • 循環(huán)語句:所對應(yīng)的的關(guān)鍵字為for和range
  • 跳轉(zhuǎn)語句:所對應(yīng)的的關(guān)鍵字為nreak,continue和goto

1.條件語句

1.1 if語句

s := "王思聰"

    //if就是條件,條件通常都是關(guān)系運算符
    if s == "王思聰" {
        fmt.Println("天神下凡一垂四")
    }
------此方法更加簡便-------------
    //簡化但條件分支
    if a := 128; a == 128 {
        fmt.Println("a=10")
    }

1.2 if ..,else語句

//第一種
    a := 1
    if a == 10 {
        fmt.Println("a == 10")
    } else if a > 10 {
        fmt.Println("a > 10")
    } else if a < 10 {
        fmt.Println("a < 10")
    }
    //第二種(更加簡便)
    b := 11
    if b == 10 {
        fmt.Println("b==10")
    }
    if b > 10 {
        fmt.Println("b > 10")
    }
    if b < 10 {
        fmt.Println("b < 10")
    }

    //if...else
    if a := 8; a == 10 {
        fmt.Println("a = 10")
    } else if a > 10 {
        fmt.Println("a > 10")
    } else if a < 10 {
        fmt.Println("a < 10")
    } else {
        fmt.Println("這是不可能的")
    }

2.選擇語句

2.1 switch語句

var num int
    fmt.Println("請按下你的樓層:")
    fmt.Scan(&num)
    switch num {
    case 1:
        fmt.Println("按下的是1樓")
        break //go語言中保留了break關(guān)鍵字,跳出switch語言。但是語言內(nèi)部默認存在
    case 2:
        fmt.Println("按下的是2樓")
    case 3:
        fmt.Println("按下的是3樓")
        fallthrough   //不跳出switch語句,后面的無條件執(zhí)行,即輸入三層,會提示的按下3蹭四層
    case 4:
        fmt.Println("按下的是4樓")
    default:
        fmt.Println("按下的是xxxx樓")
    }
  • 案例補充
score := 85
    switch { //可以沒有條件
    case score > 90: //case后面可以放條件
        fmt.Println("優(yōu)秀")
    case score > 80:
        fmt.Println("良好")
    case score > 70:
        fmt.Println("一般")
    default:
        fmt.Println("其他")

3. 循環(huán)語句

3.1 for循環(huán)語句

與多數(shù)語言不同的是,go語言的循環(huán)語句中只支持for關(guān)鍵字。且關(guān)鍵字for的基本用法與C近似。

  • 語法格式 for 初始化條件 ; 判讀條件 ;變換條件{ // }
對1-100進行累加求和
sum := 0
    for i := 1; i <= 100; i++ {
        sum = sum + i
    }
    fmt.Println("sum =", sum)

3.2 range循環(huán)語句

str := "abc"
    //通過for打印每個字符
    for i := 0; i < len(str); i++ {
        fmt.Printf("str[%d]=%c\n", i, str[i])
    }

    //使用range關(guān)鍵字:迭代打印每個元素,默認兩個返回值,一個是元素位置一個是元素本身
    for i, data := range str {
        fmt.Printf("str[%d]=%c\n", i, data)
    }

    //一個參數(shù)的使用
    for i := range str { //第二個返回值,默認丟棄,返回元素的位置(下標)
        fmt.Printf("str[%d]=%c\n", i, str[i])
    }

4.跳轉(zhuǎn)語句

4.1 break和continue

在循環(huán)中,break的操作是跳出當前循環(huán),continue是跳出本次循環(huán)。區(qū)別:break可以用在for,switch,select中,而continue僅能用于for循環(huán)

i := 0
    for { //for后面不寫任何東西,這個循環(huán)條件永遠為真
        i++
        time.Sleep(time.Second) //延遲一秒
        if i == 7 {
            break    //跳出循環(huán),如果嵌套多個循環(huán),跳出最近的那個循環(huán)
            //continue //跳出本次循環(huán),下一次繼續(xù)
        }
        fmt.Println("i =", i)
    }

4.2 goto關(guān)鍵字的使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容