一,條件語句html
常見的就是if語句:python
單支條件語句:app
if 條件 :執行語句 (注,若是是沒有邏輯運算符鏈接的話,是能夠不須要括號的,也能夠加上括號,如:if (條件):執行語句)oop
雙支條件語句:一半就只有if和elsehtm
多支條件語句:在if和else之間還有else if 語句blog
if 語句 | if 語句 由一個布爾表達式後緊跟一個或多個語句組成。 |
if...else 語句 | if 語句 後可使用可選的 else 語句, else 語句中的表達式在布爾表達式爲 false 時執行。 |
if 嵌套語句 | 你能夠在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句。 |
switch 語句 | switch 語句用於基於不一樣條件執行不一樣動做。 |
select 語句 | select 語句相似於 switch 語句,可是select會隨機執行一個可運行的case。若是沒有case可運行,它將阻塞,直到有case可運行。 |
二,循環語句get
循環類型 | 描述 |
---|---|
for 循環 | 重複執行語句塊 |
循環嵌套 | 在 for 循環中嵌套一個或多個 for 循環 |
循環控制語句input
控制語句 | 描述 |
---|---|
break 語句 | 常常用於中斷當前 for 循環或跳出 switch 語句 |
continue 語句 | 跳過當前循環的剩餘語句,而後繼續進行下一輪循環。 |
goto 語句 | 將控制轉移到被標記的語句。 |
無限循環:string
package main import "fmt" func main() { for true { fmt.Printf("這是無限循環。\n"); } }
三,練習it
1,打印出1到100的全部基數
2,打印出1到100的全部偶數
3,打印九九乘法表
package main import "fmt" func main() { for num :=1; num<101;num++ { nums:= num % 2 //fmt.Print(nums) if (nums == 1) { fmt.Print(num) fmt.Printf("\n") } } for num :=1; num<101;num++ { nums:= num % 2 //fmt.Print(nums) if (nums == 0) { fmt.Print(num) fmt.Printf("\n") } } for num :=1; num<10;num++ { for nums:=num;nums<10;nums++{ fmt.Printf("%v x %v = %2v ",num,nums,num*nums) } fmt.Printf("\n") } fmt.Printf("\n") fmt.Printf("\n") for num :=1; num<10;num++ { for nums:=1;nums<num+1;nums++{ fmt.Printf("%v x %v = %2v ",nums,num,num*nums) } fmt.Printf("\n") } fmt.Printf("\n") fmt.Printf("\n") for num :=1; num<10;num++ { for nums:=1;nums<10;nums++{ fmt.Printf("%v x %v = %2v ",nums,num,num*nums) } fmt.Printf("\n") } fmt.Printf("\n") fmt.Printf("\n") for num :=1; num<10;num++ { for new_nums:=1;new_nums<num;new_nums++{ fmt.Printf(" ") } for nums:=num;nums<10;nums++{ fmt.Printf("%v x %v = %2v ",num,nums,num*nums) } fmt.Printf("\n") } fmt.Printf("\n") fmt.Printf("\n") for num :=1; num<10;num++ { for new_nums:=num+1;new_nums<10;new_nums++{ fmt.Printf(" ") } for nums:=1;nums<num+1;nums++{ fmt.Printf("%v x %v = %2v ",nums,num,num*nums) } fmt.Printf("\n") } }
4,實現簡單的購物車
需求:
1,建立商品 2,展現商品 3,用戶能夠輸入商品序號進行選擇商品 4,沒選擇一個商品顯示一下本身的購物車 5,計算價錢 6,刪除商品 7,取消或結帳 =================== 後續補充值卡和充值功能
代碼:
//注這是一個簡版的購物車功能,沒有充值卡和充值的功能,後續有空補上 package main import ( "bufio" "os" "fmt" "strconv" "strings" "math" ) type dict struct { shopping_obj map[string]string price_obj map[string]float32 } func shopping() { //建立商品 var dianshiji dict var diannao dict var dianhua dict dianshiji.shopping_obj = map[string]string{ "name":"電視機", } dianshiji.price_obj=map[string]float32{ "price":22.11, } diannao.shopping_obj = map[string]string{ "name":"電腦", } diannao.price_obj=map[string]float32{ "price":33.11, } dianhua.shopping_obj = map[string]string{ "name":"電話", } dianhua.price_obj=map[string]float32{ "price":44.11, } shopping_dict := map[int64]dict{ 1:dianshiji, 2:diannao, 3:dianhua, } //展現商品 fmt.Println("1,",dianshiji.shopping_obj["name"]) fmt.Println("2,",diannao.shopping_obj["name"]) fmt.Println("3,",dianhua.shopping_obj["name"]) //var test *bufio.Reader //輸入序號, var price float32 var shop_list [] string fmt.Println("請輸入正確的商品序號:") tag := true for tag { var test= bufio.NewReader(os.Stdin) input, err := test.ReadString('\n') input = strings.Replace(input,"\n","",-1) _, err_1 := strconv.Atoi(input) fmt.Println(input) if err == nil{ if (input == "" || err_1!=nil){ //特殊操做(刪除商品,購買或退出) if input == "q"{ tag =false }else if input == "c"{ fmt.Println("你已付款",price,"你購買的商品以下:") fmt.Println(shop_list) tag =false }else if input == "d"{ fmt.Println("請輸入你要刪除的商品的序號,q是退出,c是付款,j繼續選擇商品:") for true{ input, err_3 := test.ReadString('\n') input = strings.Replace(input,"\n","",-1) _, err_4 := strconv.Atoi(input) if err_3 == nil{ if (input == "" || err_4!=nil){ if input == "j"{ fmt.Println("請輸入商品序號,q是退出,c是付款,d刪除商品:") break }else if input == "q"{ tag =false break }else if input == "c"{ fmt.Println("你已付款",price,"你購買的商品以下:") fmt.Println(shop_list) tag =false break } }else{ input,_ := strconv.ParseInt(input,10,64) shop_obj,err_5 := shopping_dict[input] if err_5==false{ fmt.Println("請輸入正確的商品的序號,q是退出,c是付款,j繼續選擇商品:") }else{ total := shop_obj.price_obj["price"] shop_name := shop_obj.shopping_obj["name"] var count int8 var new_shop_list []string for num:=0;num<len(shop_list);num++{ if shop_list[num] == shop_name{ count++ }else{ new_shop_list = append(new_shop_list,shop_list[num]) } } shop_list = new_shop_list total = total * float32(count) //保留兩位小數 n10 := math.Pow10(2) price = float32(math.Trunc((float64(price - total)+0.5/n10)*n10) / n10) fmt.Println("你的商品總價錢是",price,"你選擇的商品以下:") fmt.Println(shop_list) fmt.Println("請輸入繼續輸入刪除的商品的序號,q是退出,c是付款,j繼續選擇商品:") } } } } }else { fmt.Println("請輸入正確的商品序號,q是退出,c是付款,d刪除商品:") } }else{ input,_ := strconv.ParseInt(input,10,64) shop_obj,err_2 := shopping_dict[input] if err_2 == false { fmt.Println("請輸入正確的商品序號,q是退出,c是付款,d刪除商品:") }else{ //fmt.Println(shopping_obj) price = price + shop_obj.price_obj["price"] shop_list = append(shop_list,shop_obj.shopping_obj["name"]) fmt.Println("你的商品總價錢是",price,"你選擇的商品以下:") fmt.Println(shop_list) //append(shop_list, shop_obj.shopping_obj["name"]) fmt.Println("請輸入繼續輸入,q是退出,c是付款,d刪除商品:") } } } } } func main() { shopping() }