Go by Example-流控制语句之if/else
Go by Example-流控制语句之if/else
Go中的if/else的用法和其他语言没什么区别,在格式要求上保留了类似Python中的一些特性。
基本概念
在条件判断语法 if/else 中,关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码,如果有else if就走else if最后走else,然后继续后面的代码。
基本结构
首先看Go语言中 if/else 的结构,大概语法如下
if 布尔表达式1 {
/* 在布尔表达式1为 true 时执行 */
} else if 布尔表达式2{
/* 在布尔表达式2为 true 时执行 */
} else {
/* 在布尔表达式2为 false 时执行 */
}
大多数情况下else if块是没有的,这个大家应该知道就不多说了,说下注意点吧。
1、条件语句不需要使用括号将条件包含起来();
2、无论语句体内有几条语句,花括号{}都是必须存在的;
3、左花括号{必须与if或者else处于同一行;
另外两条会在后面的代码中体现。
4、在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔;
5、在有返回值的函数中,不允许将“最终的”return语句包含在if...else...结构中,否则会编译失败:
代码示例
首先看基本的用法
if 7%2 == 0 {
fmt.Println("7 是偶数")
} else {
fmt.Println("7 是奇数")
}
很明显我们答案是"7 是奇数"。
一开始的时候,我总是习惯性的把if和else,最后的{换行,也算是写Python的习惯吧,虽然在Python中{用单:代表了,但是两者相同点都是不能把他们单独放在一行。否则编译不通过。
有时候我们有三个判断条件,这时候就可以加入else if了
常见的例子根据分数判断优良以及不合格。
package main
import "fmt"
func main() {
num:=96
//if 85>num>=60 { 不支持链式判断
if num>=60&&num <85 {
fmt.Printf("%d分,可以的",num)
} else if num>=85{
fmt.Printf("%d分,牛逼,优秀",num)
}else {
fmt.Printf("%d分,成绩不太理想",num)
}
}
需要主要一点,Go中的判断条件不像Python,它不支持链式判断。
Go的If条件语句还有一种其他语言没有的使用方法。赋值之后紧接着判断
num:=96
//if 85>num>=60 { 不支持链式判断
if a:=num;a>60{
fmt.Println("a:",a)
}
那么这种写法有什么用呢?
在Go中调用一个函数(后续文章会单独讲)的时候,大部分情况都会返回两个值,一个是目的值,而一个是一个err错误类型,一般情况会判断程序没有错误再继续执行。
if ok,err:=func();err==nil{
这里就是你要做的事了
}
err==nil成立说明没有错误,所以可以继续执行,但是注意如果这个表达式太长,不建议写在一行,为了提高可读性建议拆开。
Go by Example-流控制语句之if/else的更多相关文章
- 06-JavaScript的流控制语句
06-JavaScript的流控制语句 JavaScript的流控制语句主要分为三大类: 顺序控制:因为JS是一门解释性语言,所以从上至下按顺序依次执行 分支控制:主要分为if条件语句和swith开关 ...
- SQL Server中的流控制语句
begin···end 该语句定义sql代码块,通常在if和while语句中使用 declare @num int ; ; begin ; print 'hello word' end if···el ...
- Fortran学习笔记:02 流控制语句
Fortran学习笔记目录 书接上回:Fortran学习笔记:01 基本格式与变量声明 流控制语句 IF语句 IF (逻辑表达式) THEN ... ELSE ... END IF SELECT-CA ...
- javascript高级编程3第三章:基本概念 本章内容 语法 数据类型 流控制语句 函数
3.1 语法 ECMAScript的语法大量借鉴了C及其他类C语言的语法. 3.1.1 区分大小写 3.1.2 标识符 所谓标识符,就是值变量.函数.属性的名字,或者函数的参数.标识符可以是按照下列格 ...
- JS高级程序设计学习笔记之第三章基本概念(语法,数据类型,流控制语句,函数)——查漏补缺
一.语法: 区分大小写; 2.标识符:就是指变量.函数.属性的名字,或者函数的参数 a.标志符的规则:①第一个字符必须是一个字母.下划线(_)或一个美元符号($). ...
- PL/SQL之流控制语句
1.选择控制语句 --语法1--IF 条件 THEN 语句; END IF; DECLARE v_Salary ,); BEGIN SELECT salary INTO v_Salary FROM a ...
- 《JavaScript 闯关记》之语句
表达式在 JavaScript 中是短语,那么语句就是整句命令.表达式用来计算出一个值,语句用来执行以使某件事发生.从本质上看,语句定义了 JavaScript 中的主要语法,语句通常使用一或多个关键 ...
- Access一些常用的SQL语句
您可以将 Microsoft Office Access 2013 用作创建.修改数据库以及处理数据的工具,还可将 Office Access 2013 用作服务器数据库管理系统(如 Microsof ...
- 《JavaScript高级程序设计》读书笔记 ---语句
do-while语句do-while 语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件.换句话说,在对条件表达式求值之前,循环体内的代码至少会被执行一次.以下是do-whil ...
- 剑指Offer——常用SQL语句、存储过程和函数
剑指Offer--常用SQL语句.存储过程和函数 常用SQL语句 1.在MySQL数据库建立多对多的数据表关系 2.授权.取消授权 grant.revoke grant select, insert, ...
随机推荐
- Linux 常见压缩格式详解
linux 文件压缩格式详解 压缩文件原理 在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据比特(或者其它信息相关的单位)表示信息的过程.例如,如果我们将" ...
- Extjs 兼容IE8常见问题及解决方法
1. 在IE8中整个页面都打不开,一般情况是: 页面组件中最后一个属性出现了逗号 没有多余的逗号,就很有可能是组件中没有设置renderTo:Ext.getBody(); 2. 页面按钮颜色失效 自定 ...
- 【已解决】老型号电脑需要按F1键才能进入系统
[已解决]老型号电脑需要按F1键才能进入系统 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Tue, 16 Jul 2019 20:49:00 +0800 问题描述:电脑因 ...
- S5PV210 时钟
CLOCK DOMAINS 时钟域 S5PV210 consists of three clock domains, namely, main system (MSYS), display syste ...
- IO模型之BIO代码详解及其优化演进
一.BIO简介 BIO是java1.4之前唯一的IO逻辑,在客户端通过socket向服务端传输数据,服务端监听端口.由于传统IO读数据的时候如果数据没有传达,IO会一直等待输入传入,所以当有请求过来的 ...
- 解决 React Native:The development server returned response error code: 404
解决方法: 打开android/app/build.gradle compile 'com.facebook.react:react-native:+' 修改为: compile ("com ...
- 微信小程序 之wxml保留小数点后两位数的方法及转化为字符串的方法
原理:wxml中不能直接使用较高级的js语法,如‘.toFixed’,‘toString()’,但可以通过引入wxs模块实现效果 1.新建`filter.wxs` var filters = { ...
- 详解介绍Selenium常用API的使用--Java语言(完整版)
参考:http://www.testclass.net/selenium_java/ 一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.sele ...
- java递归、js递归,无限极分类菜单表
java-json import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.List; ...
- charles 过滤指定域名
本文参考:charles 过滤指定域名 当使用"序列视图"的时候 请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 UR ...