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

app网站开发费用建设好网站

app网站开发费用,建设好网站,成都房产信息网 官网,欧美seo查询流程控制语句分类#xff1a; 流程控制语句可以控制代码的执行顺序和条件 顺序结构#xff1a;普通的代码#xff0c;由上而下依次执行分支结构(if, switch)循环结构(for) if语句#xff1a; 条件表达式值必须是bool类型#xff0c;不可省略括号#xff0c;且左大括号…流程控制语句分类 流程控制语句可以控制代码的执行顺序和条件 顺序结构普通的代码由上而下依次执行分支结构(if, switch)循环结构(for) if语句 条件表达式值必须是bool类型不可省略括号且左大括号不能另起一行 格式1 if (关系表达式) {语句体; }执行流程 首先计算关系表达式的值如果关系表达式的值为true就执行语句体如果关系表达式的值为false就不执行语句体继续执行后面的语句内容 if语句格式2 if (关系表达式) {语句体1; } else {语句体2; }执行流程 首先计算关系表达式的值如果关系表达式的值为true就执行语句体1如果关系表达式的值为false就执行语句体2继续执行后面的语句内容 if语句格式3 if (关系表达式1) {语句体1; } else if (关系表达式2) {语句体2; } … else {语句体n1; }首先计算关系表达式1的值如果值为true就执行语句体1如果值为false就计算关系表达式2的值如果值为true就执行语句体2如果值为false就计算关系表达式3的值…如果没有任何关系表达式为true就执行语句体n1。 演示 定义一个在0~100之间的变量a, 判断分数在什么范围90 ~ 100优秀80 ~ 89良好70 ~ 79中等60 ~ 69及格0 ~ 59请努力加油 func main() {// 定义一个在0~100之间的变量a, 判断分数在什么范围90 ~ 100优秀80 ~ 89良好70 ~ 79中等60 ~ 69及格0 ~ 59请努力加油var a float64fmt.Println(请输入成绩)fmt.Scan(a)if a 90 a 100 {fmt.Println(优秀)} else if a 80 a 89 {fmt.Println(良好)} else if a 70 a 79 {fmt.Println(中等)} else if a 60 a 69 {fmt.Println(及格)} else if a 0 a 59 {fmt.Println(有脸吃饭)} else {fmt.Println(成绩需在0~100之间)} }死代码指永远不会被执行的代码数据被定义成常量时就容易产生死代码 func main() {x : 8if x 5 { //优先判断条件表达式结果为true。println(a)} else if x 7 { // 永远不会执行println(b)} }在if中可以定义局部变量赋值后再做条件判断可以调用函数时传参再判断 func main() {if age : 18; age 18 {fmt.Println()}age // 只能在if中使用 }switch语句 switch和case后面是一个表达式也可以是常量、变量、有返回值的函数switch后面也可以不带表达式无表达式时为truecase常量值不能重复case后的表达式可以有多个使用逗号间隔Go语言中的switch默认给每个case自带break因此匹配成功后不会向下执行其他的 case 分支而是跳出整个switch如需要穿透后续的case须使用fallthrough强制执行下一个的case代码switch只能穿透一个casefallthrough必须放在case分支的最后一行否则编译报错。如果所有的case都和表达式的值不匹配就会执行default语句体部分default不是必须要写的 格式: switch (表达式) {case 1:语句体1case 2:语句体2...default:语句体}执行流程: 首先计算出表达式的值其次和case依次比较一旦有对应的值就会执行相应的语句在执行的过程中遇到break就会结束。最后如果所有的case都和表达式的值不匹配就会执行default语句体部分然后程序结束掉。 所以建议将default放在末尾 定义一个在0~100之间的变量a判断分数在什么范围90 ~ 100优秀80 ~ 89良好70 ~ 79中等60 ~ 69及格0 ~ 59请努力加油 func main() {var score float64fmt.Println(请输入成绩)_, err : fmt.Scan(score)if err ! nil {return }switch {case score 90 score 100:fmt.Println(优秀)case score 80 score 89:fmt.Println(良好)case score 70 score 79:fmt.Println(中等)case score 60 score 69:fmt.Println(及格)case score 0 score 59:fmt.Println(有脸吃饭)default:fmt.Println(成绩必须在0~100之间)} }case表达式值的数据类型必须和switch的数据类型一致 func main() {var num1 int 1var num2 int64 1var num3 float64 1switch num1 {case num2: // 报错num1 (类型 int64 和 int 不匹配) 的 switch 中的 case num2 无效fmt.Println(num2)case num3: // 报错num1 (类型 int64 和 int 不匹配) 的 switch 中的 case num2 无效fmt.Println(num2)default:fmt.Println(error)} }case的后面可以有多个表达式使用逗号间隔即可但case的表达式后面如果跟的是常量值则要求不能重复 func main() {var num1 int 1var num2 int 1switch num1 {case num2, 2, 3:fmt.Println(没问题)case 3: // 报错case 3的值重复常量值不能重复fmt.Println(有问题)case num1 num2: // 这里的结果也是2但是不是常量值所以不会报错fmt.Println(没问题)} }fallthrough必须放在case块结尾 func main() {var num int 10switch num {case 10:fmt.Println(case 10 匹配成功)fallthrough // 默认只能穿透一层case 20:fmt.Println(只能穿透到这里)case 30:fmt.Println(case 30 匹配成功)default:fmt.Println(default)} }输出 case 10 匹配成功 只能穿透到这里fallthrough如果放在default的前面则会穿透default func main() {var num int 30switch num {case 10:fmt.Println(case 10 匹配成功)case 20:fmt.Println(case 20 匹配成功)case 30:fmt.Println(case 30 匹配成功)fallthrough // 默认只能穿透一层default:fmt.Println(default)} }输出 case 30 匹配成功 default如果fallthrough前面手动执行break就会中断fallthrough执行 func main() {var num int 50switch num {default:fmt.Println(default在fallthrough前则不会执行default)case 10:fmt.Println(case 10 匹配成功)case 20:fmt.Println(case 20 匹配成功)break // 如果执行fallthrough前手动break就会中断fallthrough执行fallthrough // 默认只能穿透一层case 30:fmt.Println(走到这里说明被穿透了)} }switch还被用来替换if语句被省略的switch条件表达式默认值为true继而与case比较表达式结果匹配 func main() {switch x : 5; { // 相当于定义了变量x5switch x : 5; true { ... } 但是一定要加分号否则报错case x 5:fmt.Println(x 5)case x 0 x 5: // 多条件是 OR 关系不能写成“case x 0, x 5”。fmt.Println(x 0 x 5)default:fmt.Println(default)} }fallthrough也可以用来判断接口变量的类型根据类型再做数据处理。但是如果使用fallthrough那么其中的case就不能再使用fallthrough func main() {var x interface{} // 定义空接口var y int64 10x y // 把y赋值给x,此时x的数据类型为int64switch i : x.(type) {case int:fmt.Println(x的值是int, i)case int32:fmt.Println(x的值是int32)case int64:fmt.Println(x的值是int64)case float32:fmt.Println(x的值是float32)//fallthrough 不能使用case float64:fmt.Println(x的值是float64)} }for循环 循环语句可以在满足循环条件的情况下反复执行某一段代码这段被重复执行的代码被称为循环体语句当反复执行这个循环体时需要在合适的时候把循环判断条件修改为false从而结束循环否则循环将一直执行下去形成死循环。 range和fori循环中的局部变量都会被重复使用 格式 for (初始化语句;条件判断语句;条件控制语句) {循环体语句; }// 三种for定义格式func main() {// 格式1for i : 0; i 3; i {}//初始化表达式支持函数调用或定义局部变量。x : 3for x 10 { // 循环外定义初始化x}for { // 死循环相当于while true {}” 或 “for true {}”。循环体语句}for ; ; {} // 死循环只不过格式不同 }格式解释 初始化语句 用于表示循环开启时的起始状态就是循环开始的时候什么样条件判断语句用于表示循环反复执行的条件就是判断循环是否能一直执行下去循环体语句 用于表示循环反复执行的内容就是循环反复执行的事情条件控制语句用于表示循环执行中每次变化的内容就是控制循环是否能执行下去 执行流程 执行初始化语句执行条件判断语句看其结果是true还是false 如果是false循环结束 如果是true继续执行执行循环体语句执行条件控制语句回到2继续 求1-100之间的偶数和并把求和结果在控制台输出 func main() {var sum intfor i : 0; i 100; i {if i%2 0 {sum i}}fmt.Println(sum) }// 每次直接加2不需要if判断 func main() {var sum intfor i : 2; i 100; i 2 {sum i}fmt.Println(sum) }可以遍历字符串和数组 func main() {var name string itzhuzhufor i : 0; i len(name); i {fmt.Printf(%c\n, name[i])} }如果遍历的字符串内含有中文会报错因为遍历是按照字节来的一个中文占用3个字节需要转成切片再遍历或者使用range遍历range是按照字符遍历的 func main() {var name string itzhuzhu我乱码了吗str : []rune(name)for i : 0; i len(str); i {fmt.Printf(%c\n, str[i])} }range方式遍历 func main() {var name string haha我乱码了吗for i, v : range name {fmt.Printf(索引%d,数据%c, i, v)} }range range本质是一个函数在使用的时候可以加括号使用修改range得到的value不影响原切片/数组的数据value就是个副本和原数据无关但是在range循环里打印的话还是副本的内容range和fori循环中的局部变量都会被重复使用 range 关键字用于 for循环中迭代数组、切片、channel、map的元素在数组和切片中它返回元素的索引值在集合中返回 key-value 对的 key 值 格式 // for 索引,值 : range 循环数据 for index,value : range arr {}通过参数列表传递多个参数使用range获取数据 func main() {//Demo01(1, 2, 3, 4, 5)//Demo02(1, 2, 3, 4, 5)Demo03(1, 2, 3, 4, 5) }// a代表索引 v代表数据func Demo01(num ...int) {for a, v : range num {fmt.Print(a , a, )fmt.Println(v , v)} }// 如果只写一个变量取出的是索引func Demo02(num ...int) {for v : range num {//fmt.Print(a , a, )fmt.Println(v , v)} }// 可以把a使用_代替表示是一个匿名变量匿名变量不会保存具体的数据就可以用v取出数据func Demo03(num ...int) {for _, v : range num {//fmt.Print(a , a, )fmt.Println(v , v)} }演示 type Student struct {name stringage int }func main() {s : Student{韩信, 10}s2 : Student{娜可露露, 20}s3 : []Student{s, s2}arr : [3]int{1, 2, 3}// range是一个函数也可以写成 for i, v : range (arr) {// 将arr遍历然后返回给v所以在range内修改arr的值不会影响原数据for i, v : range arr {arr[0] 10fmt.Println(range, i, v)}// 同样的修改v的值也不会影响原数据for _, v : range s3 {v.age 99fmt.Println(range, v.age)}fmt.Println(arr)fmt.Println(s3) }无论是普通for循环还是range迭代其定义的局部变量都会重复使用 func main() {str : [3]string{a, b, c}for i, s : range str {println(i, s)} }输出 0x14000062ee0 0x14000062ef8 0x14000062ee0 0x14000062ef8 0x14000062ee0 0x14000062ef8如果range调用函数函数只会被执行一次 func data() []int {fmt.Println(初始化)return []int{10, 20, 30} }func main() {for i, x : range data() {fmt.Println(i, x)} }输出 初始化 0 10 1 20 2 30跳转控制语句break 跳转控制语句break用在循环语句中跳出当前循环执行循环后面的语句可以在switch、for中使用多重循环时默认跳出最近的循环在循环嵌套中可以使用关键字label标记要跳出的位置 演示 func main() {for i : 1; i 5; i {if i 3 {break}fmt.Println(i) // 结果是1、2 break会直接跳出for循环} }计算100以内的偶数和当偶数和大于100时停止循环并打印出当前i的值 func main() {sum : 0for i : 0; i 100; i {if i%2 0 {sum iif sum 100 {fmt.Println(sum100时i, i)break}}} }输出 sum100时i 20指定跳转 func main() {lable: // 要跳过的代码前要跳过的代码break lable//要跳过的代码后的位 }多重循环内循环为2时结束全部循环 func main() { label:for i : 0; i 10; i {for j : 0; j 10; j {if j 2 {break label}fmt.Println(j)}} }输出 0 1跳转控制语句continue 跳转控制语句continue:满足条件后跳过本次循环继续下次循环基于条件控制, 在循环内部使用for可以用注意 continue只能在循环中进行使用在多重循环中可以使用标号label跳出循环 判断10以内的奇数并打印 func main() {for i : 1; i 5; i {if i 2 {continue}fmt.Println(i) // 结果是1、3、4、5 continue会跳过2执行后面的} }多重循环时判断是否等于2等于2时跳过当前循环继续下一次循环 func main() {for i : 0; i 3; i {for j : 0; j 3; j {if j 2 {continue}fmt.Print(j)}} }输出 010101跳转控制语句return: retur表示终止函数或方法 func main() {// return // 放在这里等于是结束函数for i : 1; i 5; i {if i 3 {break}fmt.Println(return前)return // 放在这里是结束循环fmt.Println(return后)fmt.Println(i)} }输出 return前跳转控制语句goto 跳转控制语句goto:转移到指定的行goto一般配合条件判断使用可以用来做条件转移跳出循环等操作 建议尽量不使用goto但是Go 语言是支持goto Go语言的goto语句可以无条件地转移到过程中指定的行。 goto语句通常与条件语句配合使用。可用来实现条件转移 构成循环跳出循环体等功能。但是在结构化程序设计中一般不主张使用 goto语句 以免造成程序流程的混乱使理解和调试程序都产生困难。 goto格式 goto label ... label : statement演示 func main() {goto label // 跳过123执行45fmt.Println(1)fmt.Println(2)fmt.Println(3) label:fmt.Println(4)fmt.Println(5) }如果向后面跳会死循环 func main() { label:fmt.Println(走我了吗)goto label }不能跳到其他函数或内部代码块 func gotoTest() {test: // 未使用的标签 testfmt.Println(gotoTest...) }func main() {for i : 0; i 5; i {loop: // 未使用的标签 loopfmt.Println(goto03...)}goto loop // 未解析的标签 loopgoto test // 未解析的标签 test }循环嵌套 循环嵌套也可以说是多重循环就是在一个循环体里面嵌入另一个循环 打印乘法口诀表案例 func forDemo6() {for i : 1; i 9; i { // 外循环控制行for j : 1; j i; j { // 内循环控制列fmt.Printf(%d*%d%d , j, i, j*1)}fmt.Print(\n)} }输出结果 1*11 1*21 2*22 1*31 2*32 3*33 1*41 2*42 3*43 4*44 1*51 2*52 3*53 4*54 5*55 1*61 2*62 3*63 4*64 5*65 6*66 1*71 2*72 3*73 4*74 5*75 6*76 7*77 1*81 2*82 3*83 4*84 5*85 6*86 7*87 8*88 1*91 2*92 3*93 4*94 5*95 6*96 7*97 8*98 9*99
http://www.zqtcl.cn/news/912539/

相关文章:

  • 完全不收费的聊天软件班级优化大师下载安装app
  • 合肥网站改版360免费建站永久免费
  • 商业网站建设案例课程 下载工信部企业网站认证
  • 泉州网站设计哪家公司好沈阳seo代理计费
  • 做景观素材有哪几个网站国内建网站费用
  • 驻马店重点项目建设网站wordpress常规选项
  • 网站开发 英文网站策划建设阶段的推广
  • 建立网站一般多少钱wordpress评论跳过验证
  • 南京每月做社保明细在哪个网站查看设计作品的网站软件
  • html怎么做网站如何在腾讯云上网站建设
  • 网站建设怎么链接表格手机做外贸有什么好的网站
  • 深圳开发网站建设哪家好外贸网络营销培训
  • 广州智迅网络做网站免费下载ps素材网站
  • 什么网站时候做伪静态开发软件定制
  • 找人做网站 多少钱西宁市公司网站建设
  • 网页设计 教程网站找权重高的网站方法
  • 网站建设本地还是外地重庆seo排名方法
  • 那个网站做网编好昨晚兰州发生了什么事
  • 温州建设局网站首页哪里可以学做资料员的网站
  • 网站怎样在360做优化wordpress文章图片在线裁剪
  • 彭州建设网站建设网站哪间公司比较好
  • qq空间网站根目录慧聪网首页
  • 制作小程序和网站的公司杭州品牌设计公司
  • 显示网站翻页代码wordpress 金融 模板下载
  • 用双语网站做seo会不会phpmysql网站
  • 长沙专业网站建设公司优惠券怎么做自己的网站
  • 做网站如何宣传怎么弄公众号
  • seo网站策划书网站建设资金投入
  • 做网站东莞东莞建网站wordpress 多文件上传
  • 公司注册流程聊城网站优化案例