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

区块链分支循环

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!!

 
程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。
一、条件语句
1.1 If语句
语法格式:
if 布尔表达式 {
/ 在布尔表达式为 true 时执行 /
}
if 布尔表达式 {
/ 在布尔表达式为 true 时执行 /
} else {
/ 在布尔表达式为 false 时执行 /
}
if 布尔表达式1 {
/ 在布尔表达式1为 true 时执行 /
} else if 布尔表达式2{
/ 在布尔表达式1为 false ,布尔表达式2为true时执行 /
} else{
/ 在上面两个布尔表达式都为false时,执行/
}
示例代码:
package main
import "fmt"
func main() {
/ 定义局部变量 /
var a int = 10

/ 使用 if 语句判断布尔表达式 /
if a < 20 {

   /* 如果条件为 true 则执行以下语句 */
   fmt.Printf("a 小于 20\n" )

}
fmt.Printf("a 的值为 : %dn", a)
}
如果其中包含一个可选的语句组件(在评估条件之前执行),则还有一个变体。它的语法是
if statement; condition {
}
if condition{

}
示例代码:
package main
import (

"fmt"

)
func main() {

if num := 10; num % 2 == 0 { //checks if number is even
    fmt.Println(num,"is even") 
}  else {
    fmt.Println(num,"is odd")
}

}

需要注意的是,num的定义在if里,那么只能够在该if..else语句块中使用,否则编译器会报错的。
1.2 switch 语句
1.2.1 switch的语法
switch是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较,并根据匹配执行代码块。它可以被认为是一种惯用的方式来写多个if else子句。
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。
switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break。
而如果switch没有表达式,它会匹配true
Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。
变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。
您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。
switch var1 {

case val1:
    ...
case val2:
    ...
default:
    ...

}

示例代码:
package main
import "fmt"
func main() {
/ 定义局部变量 /
var grade string = "B"
var marks int = 90

switch marks {

  case 90: grade = "A"
  case 80: grade = "B"
  case 50,60,70 : grade = "C"  //case 后可以由多个数值
  default: grade = "D"  

}

switch {

  case grade == "A" :
     fmt.Printf("优秀!\n" )     
  case grade == "B", grade == "C" :
     fmt.Printf("良好\n" )      
  case grade == "D" :
     fmt.Printf("及格\n" )      
  case grade == "F":
     fmt.Printf("不及格\n" )
  default:
     fmt.Printf("差\n" );

}
fmt.Printf("你的等级是 %sn", grade );
}

1.2.2 fallthrough语句
如需贯通后续的case,就添加fallthrough
package main
import (

"fmt"

)
type data [2]int
func main() {

switch x := 5; x {
default:
    fmt.Println(x)
case 5:
    x += 10
    fmt.Println(x)
    fallthrough
case 6:
    x += 20
    fmt.Println(x)

}

}

相关文章:

  • java中【派生类、基类、父类、子类】
  • FydeOS VM for VMWare v6.0 Preview1 发布
  • 浏览器缓存机制
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • vue--为什么data属性必须是一个函数
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • 【翻译】babel对TC39装饰器草案的实现
  • Fabric架构演变之路
  • CSS实用技巧干货
  • Objective-C 中关联引用的概念
  • 鱼骨图 - 如何绘制?
  • Centos安装gerrit
  • 模型微调
  • 专属程序员的西游记,不是程序员读不懂哦?
  • 第十八天-企业应用架构模式-基本模式
  • ERLANG 网工修炼笔记 ---- UDP
  • IOS评论框不贴底(ios12新bug)
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript对象详解
  • KMP算法及优化
  • opencv python Meanshift 和 Camshift
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python十分钟制作属于你自己的个性logo
  • React-flux杂记
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里研究院入选中国企业智库系统影响力榜
  • 那些被忽略的 JavaScript 数组方法细节
  • 深入浏览器事件循环的本质
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 一个完整Java Web项目背后的密码
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​水经微图Web1.5.0版即将上线
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #NOIP 2014# day.2 T2 寻找道路
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (十八)SpringBoot之发送QQ邮件
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)linux 命令大全
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @RequestBody与@ModelAttribute
  • [20160902]rm -rf的惨案.txt
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [HDU5685]Problem A
  • [HNOI2008]玩具装箱toy
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算
  • [LeetCode] Sort List
  • [LeetCode]—Add Binary 两个字符串二进制相加