編程中的決策類似于現(xiàn)實(shí)生活中的決策。在決策中,當(dāng)滿足給定條件時(shí)執(zhí)行一段代碼。有時(shí),這些也稱為控制流語句。Golang使用指定語句根據(jù)某些條件指定程序的執(zhí)行流程。這些用于根據(jù)程序狀態(tài)的更改使執(zhí)行流程前進(jìn)和分支。
Go編程的決策語句為:
這是最簡單的決策。它用于決定是否執(zhí)行某個(gè)語句或語句塊,即,如果某個(gè)條件為真,則執(zhí)行語句塊,否則不執(zhí)行。
語法:
if(condition) { //if要執(zhí)行的語句 //condition為真 }
流程圖:
范例:
//使用if語句 package main import "fmt" func main() { //取局部變量 var v int = 700 //使用if語句 //檢查條件 if v < 1000 { //打印以下內(nèi)容,條件評(píng)估為true fmt.Printf("v小于1000\n") } fmt.Printf("v的值是 : %d\n", v) }
輸出:
v小于1000 v的值是 : 700
if語句告訴我們,如果條件為true,它將執(zhí)行語句塊,如果條件為false,則不會(huì)執(zhí)行。但是如果條件為false,我們想做其他事情怎么辦;那就要用到else語句。當(dāng)條件為false時(shí),可以將else語句與if語句一起使用以執(zhí)行代碼塊。
語法:
if (condition) { // if條件為true,執(zhí)行此代碼塊 } else { // if條件為false,執(zhí)行此代碼塊 }
流程圖:
// 使用 if...else 語句 package main import "fmt" func main() { //局部變量 var v int = 1200 // 使用if語句檢查條件 if v < 1000 { //打印以下內(nèi)容,如果條件評(píng)估為true fmt.Printf("v < 1000\n") } else { //打印以下內(nèi)容,如果條件評(píng)估為false fmt.Printf("v > 1000\n") } }
輸出:
v > 1000
在Go語言中,一個(gè)嵌套的if是一個(gè)if語句,它是另一個(gè)if或else的目標(biāo)。嵌套if語句是指if語句中的if語句。是的,Golang允許我們?cè)趇f語句中嵌套if語句。我。我們可以把一個(gè)if語句放在另一個(gè)if語句中。
語法:
if (condition1) { // 當(dāng)條件1為真時(shí)執(zhí)行 if (condition2) { // 當(dāng)條件2為真時(shí)執(zhí)行 } }
流程圖:
//使用嵌套if語句 package main import "fmt" func main() { //兩個(gè)局部變量 var v1 int = 400 var v2 int = 700 //使用if語句 if( v1 == 400 ) { // if條件為true時(shí)執(zhí)行 if( v2 == 700 ) { // if條件為true時(shí),執(zhí)行打印輸出 fmt.Printf("v1的值是400,v2的值是700\n" ); } } }
輸出:
v1的值是400,v2的值是700
在這里,用戶可以在多個(gè)選項(xiàng)中進(jìn)行選擇。if語句從上至下執(zhí)行。一旦if的任意條件為true,則將執(zhí)行與if關(guān)聯(lián)的語句,并跳過其余的if語句。如果所有條件都不成立,則將執(zhí)行最終的else語句。
重要事項(xiàng):
if語句可以有0個(gè)或1個(gè)if,并且必須在其他if后面。
if語句可以有0到多個(gè)if,并且必須在else之前
如果else if成功,其余的else if 或else 都不會(huì)被執(zhí)行
語法:
if(condition_1) { //condition_1為true,執(zhí)行這里的代碼塊 } else if(condition_2) { //condition_2為true,執(zhí)行這里的代碼塊 }else { //沒有條件為true時(shí),執(zhí)行這里代碼塊 }
流程圖:
package main import "fmt" func main() { var v1 int = 700 if(v1 == 100) { // 如果條件為真,則顯示以下內(nèi)容 fmt.Printf("v1的值是100\n") } else if(v1 == 200) { fmt.Printf("v1的值是200\n") } else if(v1 == 300) { fmt.Printf("v1的值是300\n") } else { //如果條件都不為真 fmt.Printf("沒有匹配的值\n") } }
輸出:
沒有匹配的值