go語言的條件語句和循環語句

一,條件語句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()
}
相關文章
相關標籤/搜索