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)
}
}