一,条件语句

常见的就是if语句:

单支条件语句:

      if   条件 :执行语句   (注,如果是没有逻辑运算符连接的话,是可以不需要括号的,也可以加上括号,如:if (条件):执行语句)

双支条件语句:一半就只有if和else

  多支条件语句:在if和else之间还有else if 语句

if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。
if...else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。
if 嵌套语句 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。
switch 语句 switch 语句用于基于不同条件执行不同动作。
select 语句 select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

二,循环语句

循环类型 描述
for 循环 重复执行语句块
循环嵌套 在 for 循环中嵌套一个或多个 for 循环

循环控制语句

控制语句 描述
break 语句 经常用于中断当前 for 循环或跳出 switch 语句
continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。
goto 语句 将控制转移到被标记的语句。

无限循环:

package main

import "fmt"

func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}  

三,练习

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

  

go语言的条件语句和循环语句的更多相关文章

  1. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

  2. GO语言的基本语法之变量,常量,条件语句,循环语句

    GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...

  3. javascript语句——条件语句、循环语句和跳转语句

    × 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...

  4. python基础(4):条件语句与循环语句

    今天我们看看条件语句与循环语句. 预习: 1.使用while循环输出1 2 3 4 5 6 8 9 10 2.求1-100的所有数的和 3.输出 1-100 内的所有奇数 4.输出 1-100 内的所 ...

  5. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  6. Shell学习(三)——Shell条件控制和循环语句

    参考博客: [1]Shell脚本的条件控制和循环语句 一.条件控制语句 1.if语句 1.1语法格式: if [ expression ] then Statement(s) to be execut ...

  7. Shell脚本的条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  8. 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事

      一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...

  9. 前端笔记之JavaScript(三)关于条件判断语句、循环语句那点事

    一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法 ...

  10. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

随机推荐

  1. 每日一练之排序算法(P1097 统计数字)

    某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5×10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. ...

  2. UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法

    基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...

  3. Unable to find a single main class from the following candidates ,显示有两个main class

    由于基础框架是用的网上down的源码,我将项目名字改了,估计没有进行maven clean,本地调试的时候没有问题. 当发布时候,执行maven install 一直提示上述错误. 解决办法:1.ma ...

  4. GDI+_从Bitmap里得到的Color数组值分解

    [这里写只是我个人的摸索经历,已经给出解决方案] 我之前写过一篇关于ARGB值的研究:https://www.cnblogs.com/lingqingxue/p/10362639.html 最近我又遇 ...

  5. SQL 字段修改

    1.修改字段名: alter table 表名 rename column A to B 2.修改字段类型: alter table 表名 alter column 字段名 type not null ...

  6. ARTS打卡计划第一周-Share-系统字典模块的设计

    在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段.  本篇文 ...

  7. es curl 访问

    1. curl -u elastic:mypass -X GET "localhost:9200/my_index/_search?pretty" 相关链接:https://www ...

  8. d3.js d3.transform 方法移除的解决方案

    rt d3.transform在新版本中移除 需要自行写出该功能 function getTranslation(transform) { // Create a dummy g for calcul ...

  9. esxi虚拟机克隆后的主机网卡设置

    windows 在虚拟机配置页面右击属性,编辑虚拟机设置,删除掉原来的网卡,重新添加新的网卡 进入系统以后,进入 windows/system32 找到sysprep,运行等待电脑重启 重启过程会稍微 ...

  10. 自定义Log 写到文件中

    using System; using System.Collections.Generic; using System.Web; using System.IO; using System.Text ...