【12】Go語言for嵌套循環(huán)語句和循環(huán)控制語句

Go 語言中可以在 if 或 else if 語句中嵌入若干個(gè) if 或 else if 語句。
Go語言中if...else語句的語法如下:

if 布爾表達(dá)式1 {
           /* 在布爾表達(dá)式1為true時(shí)執(zhí)行*/
           if 布爾表達(dá)式2{
                          /* 在布爾表達(dá)式2為true時(shí)執(zhí)行*/
            }
}

例:以嵌套的方式判斷學(xué)生成績

package main
import "fmt"
func main() {
        if score := 98 ; scorce=>60 {
                 if  score => 70 {
                              if score  => 80 {
                                            if score => 90 {
                                                       fmt.Printfln("優(yōu)")
                                            } else {
                                                    fmt.Printfln("良")
                                            }
                              } else {
                                         fmt.Printfln("中等")
                              }
                     } else {
                          fmt.Printfln("及格")
                     }
        }else {
          fmt.Printfln("不及格")
        }
}

循環(huán)控制語句
一. Go語言break語句
break,跳出循環(huán)體。break 語句用于終止當(dāng)前正在執(zhí)行的 for 循環(huán),并開始執(zhí)行循環(huán)之后的語句。Go語言中 break 語句可以結(jié)束 for、switch 和 select 的代碼塊,另外 break 語句還可以在語句后面添加標(biāo)簽,表示退出某個(gè)標(biāo)簽對(duì)應(yīng)的代碼塊,標(biāo)簽要求必須定義在對(duì)應(yīng)的 for、switch 和 select 的代碼塊上。

package main
import "fmt"
func main() {
        for i:= 1 ; i<= 10 ; i++ {
                    if i>5 {
                             break   //如果i>5,則循環(huán)終止(loop is terminated)
                   }
                     fmt.Printf("%d",i)
         }
fmt.Printf("\n line after for loop")
}

二.Go語言continue語句
Go 語言的 continue 語句有點(diǎn)像 break 語句。但是 continue 不是跳出循環(huán),而是跳過當(dāng)前循環(huán),執(zhí)行下一次循環(huán)語句。for 循環(huán)中,執(zhí)行 continue 語句會(huì)觸發(fā) for 增量語句的執(zhí)行。換言之,continue 語句用于跳過 for 循環(huán)的當(dāng)前迭代,循環(huán)將繼續(xù)到下一個(gè)迭代。僅限在 for 循環(huán)內(nèi)使用,在 continue 語句后添加標(biāo)簽時(shí),表示開始標(biāo)簽對(duì)應(yīng)的循環(huán),例如:

package main
import "fmt"
func main() {
OuterLoop:
    for i := 0; i < 2; i++ {
        for j := 0; j < 5; j++ {
            switch j {
            case 2:
                fmt.Println(i, j)
                continue OuterLoop       //代碼說明:將結(jié)束當(dāng)前循環(huán),開啟下一次的外層循環(huán),而不是內(nèi)層for循環(huán)。
            }
        }
    }

break 與 continue 的區(qū)別如下。
? break 語句無條件跳出并結(jié)束當(dāng)前的循環(huán),然后執(zhí)行循環(huán)體后的語句。
? continue 語句跳過當(dāng)前的循環(huán),而開始執(zhí)行下一次循環(huán)。

三.Go語言goto語句
Go 語言的 goto 語句可以無條件地轉(zhuǎn)移到程序指定的行。goto 語句通常與條件語句配合使用??捎脕韺?shí)現(xiàn)條件轉(zhuǎn)移、構(gòu)成循環(huán)、跳出循環(huán)體等功能。但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不建議使用 goto 語句,以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。
goto語法格式:

LABEL : statement
goto LABEL

例:借助goto跳轉(zhuǎn)來輸出1~50的素?cái)?shù)

package main
import "fmt"
func main() {
        var C , c int 
         C = 1
         LOOP :
        for C<50 {
              C++   //C=1 不能寫入這里就不能寫入
               for c = 2 ; c<C ; c++ {
                      if C%c == 0{
                              goto LOOP //若發(fā)現(xiàn)因子不是素?cái)?shù)
                        }
             }
   fmt.Printf("%d\n",C)
   }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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