当前位置: 首页 > news >正文

Go语言流程控制(if / for)

分支结构

package mainimport ("fmt""strconv"
)/*
1.顺序结构
2.分支结构
3.循环结构
*//*
if 条件1 {// 条件1为真时执行的代码
} else if 条件2 {// 条件1为假但条件2为真时执行的代码
} else {// 所有条件均为假时执行的代码
}一种特殊的条件分支结构if statement;条件{执行语句}
*/
func main() {if v, e := strconv.Atoi("abc"); e != nil {fmt.Println("转换失败", e)} else {fmt.Println("转换成功", v)}
}

switch 接收用户从键盘输入的成绩,输出相应的成绩等级

package mainimport ("fmt""strconv"
)/*
switch{
case    变量范围1:执行语句1case    变量范围2:执行语句2default:执行语句3}
*/
func main() {//接收用户从键盘输入的成绩,输出相应的成绩等级var score intfmt.Println("请输入成绩")fmt.Scan(&score)switch {case score < 60:fmt.Println("不及格")case score < 90:fmt.Println("良好")default:fmt.Println("优秀")}
}

switch 登录选择界面

package mainimport ("fmt"
)func main() {var choice intfmt.Println("please input your choice:")fmt.Scan(&choice)switch choice {case 1:fmt.Println("选择了登录")case 2:fmt.Println("选择了注册")default:fmt.Println("输入有误")}}

循环结构

for循环
package mainimport ("fmt"
)func main() {for i := 0; i < 10; i++ {fmt.Println(i)}//第二种方法 i := 0for i < 10 {fmt.Println(i)i++}
}

类似while循环

package mainimport ("fmt"
)func main() {var choice stringfor choice != "quit" {fmt.Println("请输入你的选择:")fmt.Scan(&choice)}
}

range

package mainimport ("fmt"
)func main() {for k, v := range "xyz" {fmt.Printf("key:%d,value:%c\n", k, v) //key是索引,value是字符-->key:0,value:xfmt.Println("key:", k, "value:", v)   //key是索引,value是字符-->key: 0 value: 120}
}

死循环

package mainimport ("fmt"
)func main() {for {//无限死循环   可以通过某些条件判断  用break跳出循环}
}

break 、continue

package mainimport ("fmt"
)func main() {//break --》跳出本次循环//continue --》跳过本次循环,继续下一次循环for k, v := range "xyz" {fmt.Println("外层循环:", k, string(v))for m, n := range "abc" {if string(n) == "b" {//continue //跳过本次循环,继续下一次循环//一般用于后续还有代码要执行,跳过本次循环break //跳出内层循环} else {fmt.Println("****内层循环:", m, string(n))}}}
}
题目:用户登录

接收用户名和密码输入,判断用户明是否为root,密码是否为123456

如果是,输出登录成功

输入错误,有三次重试机会,三次用完提示登录失败

package mainimport ("fmt"
)func main() {var username, password stringfor i := 0; i < 3; i++ {fmt.Println("请输入用户名:")fmt.Scan(&username)fmt.Println("请输入密码:")fmt.Scan(&password)if username == "root" && password == "123456" {fmt.Println("登录成功")break} else {fmt.Println("用户名或密码错误,请重新输入,还有", 2-i, "次机会")}}if username != "root" || password != "123456" {fmt.Println("登录失败")}
}

for循环有自己的空间

for循环内创建的变量只能在循环体内使用

for循环创建的变量和父作用域的同名变量互不干涉

package mainimport ("fmt"
)var a int
func main() {//for循环有自己的空间a := 100fmt.Printf("outside a is :%d,address is %x \n", a, &a)for _, v := range "xyz" {fmt.Println("拿到的值为:", string(v))a := 1000fmt.Printf("inside a is :%d,adress is %x \n", a, &a)}
}

goto语句

package mainimport ("fmt"
)var a int
func main() {//goto语句    慎用num1 := 1
ABC:fmt.Println(num1)for num1 < 10 {num1++if num1 == 5 {goto ABC}}
}
http://www.dtcms.com/a/287034.html

相关文章:

  • 编程研发工作日记_廖万忠_2016_2017
  • 从零构建监控系统:先“完美设计”还是先“敏捷迭代”?
  • Java Web项目Dump文件分析指南
  • 白话深度学习:一副PPT入门CNN,ResNet和Transformer
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十三课——图像直方图和灰度图像叠加的FPGA实现
  • 14-链路聚合
  • ZeroMQ中的REQ/REP模式:分布式系统的同步调用之道
  • JavaSE -- 数据操作流
  • 比亚迪古德伍德亮相:从技术突破到文化对话
  • 【53】MFC入门到精通——MFC串口助手(二)---通信版(发送数据 、发送文件、数据转换、清空发送区、打开/关闭文件),附源码
  • SDIO协商,枚举,CMD等概念
  • SSM框架——Day4
  • 文件管理-文件控制块和索引节点
  • 深入解析Linux文件描述符:原理、机制与应用实践
  • 光伏系统遮挡分析与设计优化策略
  • 网络基础12--可靠性概述及要求
  • b-up:Enzo_Mi:深度学习基础知识
  • 回归预测 | MATLAB实现SA-BP模拟退火算法优化BP神经网络多输入单输出回归预测
  • 7.19 pq | 并查集模板❗|栈循环|数组转搜索树
  • CCF编程能力等级认证GESP—C++4级—20250628
  • Nestjs框架: 关于controller中的常用装饰器
  • 3.3 参数传递方式
  • 写case杂记
  • Glary Utilities(系统优化工具) v6.20.0.24 专业便携版
  • JavaSE -- 数组详细讲解(数组介绍,Arrays常用方法,二维数组创建)
  • Redis学习其三(订阅发布,主从复制,哨兵模式)
  • 优迅股份IPO隐忧:毛利水平“两连降”,研发费用率不及行业均值
  • decltype是什么,什么作用?
  • 【c++】指针的另一大用途:限制实参必须是变量
  • Fish Speech:开源多语言语音合成的革命性突破