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

go - 学习笔记 -2

go - 学习笔记 -2

    • 类型转换
    • 运算符
    • 输入输出函数
    • 输入输出函数应用
    • 流程控制语句之分支语句
    • 流程控制语句之多分支语句
    • 星座案例
    • 分支语句嵌套
    • 循环语句
    • 循环语句和分支语句之间的嵌套
    • for循环的作用域
    • 退出循环语句


类型转换

package mainimport ("fmt""reflect""strconv"
)func main() {// 1、整型之间的转换 int8 int16 int32//var x int8 = 10//var y int16 = 20//fmt.Println(x + int8(y))// 2、字符串与整型之间的转换:strconv//var ageStr = "32"//var age, error = strconv.Atoi(ageStr)//fmt.Println("error", error) // <nil>//fmt.Println("age", age, reflect.TypeOf(age))//price := 100//priceStr := strconv.Itoa(price)//fmt.Println(priceStr, reflect.TypeOf(priceStr))// 3、strconv Parse系列函数// 将字符串转为整型//priceStr := "100"//var price, error = strconv.ParseInt(priceStr, 10, 64)//fmt.Println("error", error) // <nil>//fmt.Println("price", price, reflect.TypeOf(price))// 将字符串转为浮点型//priceStr := "100.00"//var price, error = strconv.ParseFloat(priceStr, 64)//fmt.Println("error", error) // <nil>//fmt.Println("price", price, reflect.TypeOf(price))// 将字符串转为布尔型priceStr := "100.00"var price, error = strconv.ParseBool(priceStr)fmt.Println("error", error) // <nil>fmt.Println("price", price, reflect.TypeOf(price))// 将字符串转为浮点型// 将字符串转为布尔值
}

运算符

package mainimport "fmt"func main() {// 1、 科学运算 + - * / %//var x, y = 10, 20//fmt.Println(x + y)//fmt.Println(x - y)//fmt.Println(x * y)//fmt.Println(x / y)//fmt.Println(x % y)// 计算一个数字是奇数还是偶数//fmt.Println(x%2 == 0)// 2、 比较运算符 > < = !=//fmt.Println(x > y)//fmt.Println(x < y)//fmt.Println(x == y)//fmt.Println(x != y)// 3、逻辑运算符 && ||//fmt.Println(true && false)//fmt.Println(true || false)//fmt.Println(!true && false)// 3.1 案例1//username := "yuan"//password := 123//fmt.Println(username == "yuan" && password == 123)// 3.2 案例2//name := "root"//age := 22//ret := name == "yuan" || !(age < 33)//fmt.Println(ret)// 4、赋值运算//var x = 10//x += 1 // x = x +1//fmt.Println(x)//x -= 1 // x = x -1//fmt.Println(x)//var y = 11//y++ // y = y + 1//fmt.Println(y)// 5、优先级var a, b, c = 1, 2, 3fmt.Println(a, b, c)var t = a + bfmt.Println(t)
}

输入输出函数

package mainimport "fmt"func main() {// 1、print和pringln//var name, age = "yuan", 22//fmt.Print(name, age)//fmt.Println(name, age)// 2、 printf:标准化输出//name := "yuan"//age := 24//isMarried := false//salary := 3000.549//fmt.Printf("姓名:%s 年龄:%d 婚否:%t 薪资:%.2f\n", name, age, isMarried, salary)//fmt.Printf("姓名:%v 年龄:%v 婚否:%v 薪资:%v\n", name, age, isMarried, salary)//fmt.Printf("姓名:%#v 年龄:%#v 婚否:%#v 薪资:%#v\n", name, age, isMarried, salary) 整形和浮点型//fmt.Printf("%b\n", 12)       // 二进制表示:1100//fmt.Printf("%d\n", 12)       // 十进制表示:12//fmt.Printf("%o\n", 12)       // 八进制表示:14//fmt.Printf("%x\n", 12)       // 十六进制表示:c//fmt.Printf("%X\n", 12)       // 十六进制表示:c//fmt.Printf("%f\n", 3.1415)   // 有小数点而无指数:3.141500//fmt.Printf("%.3f\n", 3.1415) // 3.142//fmt.Printf("%e\n", 1000.25)  // 科学计数法:  1.000250e+03,默认精度为6// 设置宽度//fmt.Printf("学号:%s 姓名:%-20s 平均成绩:%-4d\n", "1001", "alvin", 100)//fmt.Printf("学号:%s 姓名:%-20s 平均成绩:%-4d\n", "1002", "zuibangdeyuanlaoshi", 98)//fmt.Printf("学号:%s 姓名:%-20s 平均成绩:%-4d\n", "1003", "x", 78)// 3、 sprintf//name := "yuan"//age := 24//isMarried := false//salary := 3000.549//info := fmt.Sprintf("姓名:%s 年龄:%d 婚否:%t 薪资:%.2f\n", name, age, isMarried, salary)//fmt.Println(info)// 4、输入函数 IO函数// 4.1 fmt.Scan:以空格或换行符分割多个值,都可以//var name string//var age int//fmt.Print("请输入姓名和年龄:")//fmt.Scan(&name, &age)//fmt.Println(name, age)// 4.2 fmt.Scanln:最好只用空格分割多个值,用换行符则默认后续输入值为空。换行即结束。//var name string//var age int//fmt.Print("请输入姓名和年龄:")//fmt.Scanln(&name, &age)//fmt.Println(name, age)// 4.3 fmt.Scanf:最好只用空格分割多个值,用换行符则默认后续输入值为空。换行即结束。var a, b intfmt.Print("请按指定格式输入:")fmt.Scanf("%d+%d", &a, &b)fmt.Println(a + b)}

输入输出函数应用

package mainimport ("fmt""strings"
)func main() {// 案例 一 : 输入以YYYY-MM-DD格式的生日,输入以 YYYY年-MM月-DD日格式//var birth string//fmt.Print("请输入年月日以 YYYY-MM-DD格式:")//fmt.Scan(&birth)//birthSlice := strings.Split(birth, "-")//fmt.Printf("您的生日是%s年-%s月-%s日", birthSlice[0], birthSlice[1], birthSlice[2])// 案例 二:输入一个英文名,如果以A/a开头,则返回true,否则返回flasevar name stringfmt.Print("请输入英文名:")fmt.Scan(&name)//var b = (strings.HasPrefix(name, "a")) || (strings.HasPrefix(name, "A"))UpName := strings.ToUpper(name)var b = strings.HasPrefix(UpName, "A")fmt.Println(b)}

流程控制语句之分支语句

package mainimport "fmt"func main() {// 分支语句// 1、单分支 if//var name = "inner"//if name == "inner" {//    fmt.Println("姓名匹配成功")//}// 2、双分支 if else//var age int//fmt.Print("请输入年龄:")//fmt.Scan(&age)//if age >= 18 {//	fmt.Println("年龄大于18")//} else {//	fmt.Println("年龄小于18")//}// 2.1 用户输入用户名和密码,判断是否登陆成功var userName, passWord stringfmt.Print("请输入用户名:")fmt.Scan(&userName)fmt.Print("请输入密码:")fmt.Scan(&passWord)if userName == "root" && passWord == "123" {fmt.Println("登陆成功")} else {fmt.Println("登陆失败")}
}

流程控制语句之多分支语句

package mainfunc main() {// 多分枝// 1、多分支 if - else if - else if ....else/*var score intfmt.Print("请输入你的成绩:")fmt.Scan(&score)if score < 0 || score > 100 {fmt.Println("你的成绩不正确")} else if score > 90 {fmt.Println("成绩优秀")} else if score > 60 {fmt.Println("成绩良好")} else {fmt.Println("成绩不及格")}*//*var week intfmt.Print("请输入星期的数字:")fmt.Scan(&week)if week == 0 {fmt.Println("星期日")} else if week == 1 {fmt.Println("星期一")} else if week == 2 {fmt.Println("星期二")} else if week == 3 {fmt.Println("星期三")} else if week == 4 {fmt.Println("星期四")} else if week == 5 {fmt.Println("星期五")} else if week == 6 {fmt.Println("星期六")} else {fmt.Println("输入不合法")}*/// 2、switch语句,switch值判断/*var week intfmt.Print("请输入星期的数字:")fmt.Scan(&week)switch week {case 0:fmt.Println("星期日")case 1:fmt.Println("星期一")case 2:fmt.Println("星期二")case 3:fmt.Println("星期三")case 4:fmt.Println("星期四")case 5:fmt.Println("星期五")case 6:fmt.Println("星期六")default:fmt.Println("非法输入")}*/
}

星座案例

package mainimport ("fmt""os"
)func main() {var month, day intfmt.Print("请输入生日的月和日:")fmt.Scan(&month, &day)var xingZuo stringif day < 1 || day > 31 {fmt.Println("输入的日有问题")os.Exit(0)}switch month {case 1:// 日判断if day >= 1 && day <= 19 {xingZuo = "摩羯座"} else {xingZuo = "水瓶座"}case 2:// 日判断if day >= 1 && day <= 18 {xingZuo = "水瓶座"} else {xingZuo = "双鱼座"}case 3:// 日判断if day >= 1 && day <= 20 {xingZuo = "双鱼座"} else {xingZuo = "白羊座"}case 4:// 日判断if day >= 1 && day <= 19 {xingZuo = "白羊座"} else {xingZuo = "金牛座"}case 5:// 日判断if day >= 1 && day <= 20 {xingZuo = "金牛座"} else {xingZuo = "双子座"}case 6:// 日判断if day >= 1 && day <= 21 {xingZuo = "双子座"} else {xingZuo = "巨蟹座"}case 7:// 日判断if day >= 1 && day <= 22 {xingZuo = "巨蟹座"} else {xingZuo = "狮子座"}case 8:// 日判断if day >= 1 && day <= 22 {xingZuo = "狮子座"} else {xingZuo = "处女座"}case 9:// 日判断if day >= 1 && day <= 22 {xingZuo = "处女座"} else {xingZuo = "天秤座"}case 10:// 日判断if day >= 1 && day <= 23 {xingZuo = "天秤座"} else {xingZuo = "天蝎座"}case 11:// 日判断if day >= 1 && day <= 22 {xingZuo = "天蝎座"} else {xingZuo = "射手座"}case 12:// 日判断if day >= 1 && day <= 21 {xingZuo = "射手座"} else {xingZuo = "摩羯座"}default:fmt.Println("输入的月份有问题")}fmt.Println("您的星座是:", xingZuo)
}

分支语句嵌套

package mainimport "fmt"func main() {var username, password stringfmt.Print("输入用户名和密码:")fmt.Scan(&username, &password)if username == "root" && password == "123" {var score intfmt.Print("请输入你的成绩:")fmt.Scan(&score)if score < 0 || score > 100 {fmt.Println("你的成绩不正确")} else if score > 90 {fmt.Println("成绩优秀")} else if score > 60 {fmt.Println("成绩良好")} else {fmt.Println("成绩不及格")}} else {fmt.Println("用户名或密码错误!")}
}

循环语句

package mainfunc main() {/*for 表达式 { 循环语句 }*//*// 循环10次var count = 0for count < 10 {fmt.Println(count)count++}*//*// 打印1-100var count = 0for count < 100 {count++fmt.Println(count)}*//*// 打印100-1var count = 100for count > 0 {fmt.Println(count)count--}*//*// 三要素for循环var count = 0 //初始语句for count < 10 { // 条件表达式fmt.Println(count)count++ // 步进语句}*//*// 执行顺序为:count:=0 -> count<100 -> 循环体语句 -> count++ -> count<100 -> 循环体语句 -> count++.......count>100 -> breakfor count := 0; count < 10; count++ {// 循环体语句fmt.Println(count)}*//*// 基于循环,实现打印 1+2+3+4...+100var s = 0for count := 1; count < 100; count++ {s += count}fmt.Println(s)*/
}

循环语句和分支语句之间的嵌套

package mainimport "fmt"func main() {/*// 循环语句中嵌套分支语句for count := 1; count < 100; count++ {if count%2 == 0 { //判断是否为偶数fmt.Println(count)}}*/// 分支语句中嵌套循环语句for true {var num intfmt.Print("请输入一个正整数:")fmt.Scan(&num)if num > 100 {// 从小到大打印1-numfor i := 1; i <= num; i++ {fmt.Println(i)}} else {// 从大到小打印num-1for i := num; i >= 1; i-- {fmt.Println(i)}}}
}

for循环的作用域

package mainimport "fmt"func foo() {var y = 100fmt.Println(y)
}func main() {for i := 0; i < 10; i++ {fmt.Println(i)}//fmt.Println(i) // 这里无法获取到i的值
}

退出循环语句

package mainimport "fmt"func main() {// 退出循环 break/*// 示例一for i := 0; i < 10; i++ {if i == 6 {break}fmt.Println(i)}*//*// 示例二fmt.Printf(`1、普通攻击2、超级攻击3、使用道具4、逃跑5、退出游戏`)for true {var choice intfmt.Printf("请输入选择:")fmt.Scanln(&choice)//fmt.Println(choice,reflect.TypeOf(choice))if choice == 5 {fmt.Println("游戏退出")break}switch choice {case 1:fmt.Println("普通攻击")case 2:fmt.Println("超级攻击")case 3:fmt.Println("使用道具")case 4:fmt.Println("逃跑")default:fmt.Println("输入有误!")}}*/// countinue 退出当次循环// 示例一for i := 0; i < 10; i++ {if i == 6 {continue}fmt.Println(i)}}

相关文章:

  • 服务器防火墙的应用技术有哪些
  • Redis 16种妙用
  • 黑马程序员——接口测试——day03——Postman断言、关联、参数化
  • 智慧公厕让社区生活更美好
  • Python实战:读取MATLAB文件数据(.mat文件)
  • windows系统使用Vscode在WSL调试golang本地进程
  • windows安装部署node.js并搭建Vue项目
  • 半小时到秒级,京东零售定时任务优化怎么做的?
  • 数据库 -neo4j的基本操作
  • Flink SQL 中的流式概念:状态算子
  • 240Hz高刷电竞显示器 - HKC VG253KM
  • 【分布式事务 XA模式】MySQL XA模式详解
  • 如何操作系统缓冲区减少了磁盘碎片化?
  • springboot-基础-添加model和controller的简单例子+常用注解含义
  • vscode不能远程连接ubuntu18.04.6
  • 深入了解以太坊
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Android优雅地处理按钮重复点击
  • CSS实用技巧干货
  • Java小白进阶笔记(3)-初级面向对象
  • MySQL-事务管理(基础)
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • RxJS: 简单入门
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 安卓应用性能调试和优化经验分享
  • 对JS继承的一点思考
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 两列自适应布局方案整理
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前端性能优化--懒加载和预加载
  • 如何学习JavaEE,项目又该如何做?
  • 手写双向链表LinkedList的几个常用功能
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #QT项目实战(天气预报)
  • $.ajax()方法详解
  • (145)光线追踪距离场柔和阴影
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (ibm)Java 语言的 XPath API
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (算法)N皇后问题
  • (五)网络优化与超参数选择--九五小庞
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net专家(高海东的专栏)