golang语言学习第三课 条件语句

if 是一个条件语句。if 语句的语法为:

if condition {
}

 与其他语言不同, 其他语言 if后面有()括号,但是go语言是没有的。

if 语句后面可以接可选的 else if 和 else 语句:

if condition {
} else if condition {
} else {
}

  注意: 务必在 } 后半个花括号后面跟着 else关键词,如果换行跟着 else是错误的。无法通过编译。

如下代码是错误的,无法通过编译的:

if condition {
}
else {       //错误,严重错误,else关键词前面务必保持有} 后部分的花括号,否则无法通过编译。
}

另外:

if 的条件里可以赋值
if 的条件里赋值的变量作用域就在这个if语句里。 详见下面代码:

package main

import (
    "fmt"
    "io/ioutil"
)

func main(){
    const filename = "abc.txt"

    if contents, err := ioutil.ReadFile(filename); err != nil {    //if的条件里可以赋值
        fmt.Println(err)
    } else {
        fmt.Printf("%s\n", contents)         //if的条件里赋值的变量作用域就在这个if语句里。
    }
}

分支选择语句
switch...case..(其实我个人感觉把switch关键词改成select更合适,英文意思:在哪种情况选择哪个。)

具体语法看下面的代码

func eval(a,b int, op string) int {
    var result int
    switch op {
    case "+":
        result =a+b
    case "-":
        result =a-b
    case "*":
        result =a*b
    case "/":
        result =a/b
    default:
        panic("unsupported operator:" +op)
    }
    return result
}

需要注意:switch会自动break,除非使用fallthrough

switch后可以没有表达式,只需在case里面加入条件就可以了

func grade(score int) string {
    switch {
    case score <60:
        return "F"
    case score <80:
        return "C"
    case score <90:
        return "B"
    default:
        return "A"
    }
}

原文地址:https://www.cnblogs.com/golangxiong/p/10166419.html

时间: 2024-10-10 10:07:09

golang语言学习第三课 条件语句的相关文章

golang语言学习第七课:数组

go语言中,定义数组有3种方法: //定义数组的3种方法 var arr1 [5]int //必须在[]中填入数组的大小,如果不填则不是数组,而是切片 arr2 := [3] int {1,3,5} //第二种定义数组的方法,只能在函数体内用,必须给初始值. arr3 := [...] int {2,4,6,8,10} //第三种,让编译器去计算个数的方法. var grid [4][5]int //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组 //

C 语言学习第三课习题编程练习

1.通过实验的方法,观察系统如何处理整数上溢.浮点数上溢.和浮点数下溢的情况. 整数上溢的情况: #include<stddio.h> int main() {  int i=2147483647; printf("%d %d %d\n",i,i+1,i+2); } 运行结果如下: 解释:整数i的范围就是: -2147483647-2147483647 所以最大值加1向上溢出后回到最左端. 浮点数上溢: 程序: #include<stdio.h> int mai

Go语言学习笔记(三) [控制结构、内建函数]

日期:2014年7月21日 一.控制结构 1.Go中,只有几个控制结构,它没有do或者while循环,有for,灵活的switch语句和if,在switch中可以接受像for那样可选的初始化语句,另外Go中还提供了类型选择和多路通信转接器的select.Go的控制结构的语法和C相比有所不同,它不需要圆括号,但语句体必须总是包含在大括号内. 2.控制结构语法 1)if-else (1)if后紧跟单个条件 例如:if x > 0 {   //{必须和if在同一行,这是Go语法规定的,如果换行写,编译

JavaScript--基于对象的脚本语言学习笔记(三)

事件处理器 1.一个数据校验表单的例程 <html> <head> <title>js练习</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> String.prototype.trim=function(){ r

安卓学习第三课——常见布局

1.相对布局 简单的说,就是通过描述每个组件所在的位置,使用的layout_below等,就是控制组件与组件之间的位置关系. 2.绝对布局 就是通过描述他的x,y坐标来确定位置 3.线性布局 有两种是水平和竖直对其方式,一般情况下整体会使用线性布局,来排列众多的组件 3.帧布局 我感觉就是一层一层的,默认的情况下,多个组件是在同一个位置,所以你需要去修改位置.同时可以选择是否显示. 这可以用来描述视频播放器暂停键的控制方法. 代码如下. <?xml version="1.0" e

C++语言学习(三)——封装(Encapsulation)

C++语言学习(三)--封装(Encapsulation) 一.封装简介 C语言等面向过程编程中,数据以及数据的相关操作函数都是分离的独立个体:在C++等面向对象编程中,数据以及数据的相关操作被设计为对象,对象包括属性(数据)和操作(函数),两者共同构成对象实体(即类实体).面向对象编程使程序更模块化,更易读易写,提升了代码重用到一个更高的层次.面向对象编程中,数据和数据的操作封装为了对象.封装可以隐藏实现细节,使得代码模块化,是把过程和数据包围起来,对数据的访问只能通过已定义的接口.封装是一种

Python学习(5)条件语句

目录 条件语句 简单的语句组 Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句…… else: 执行语句…… 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以

蓝鸥C语言学习第三天

今天主要学习了循环结构 循环结构1-while循环   格式如下: 1 while ( 条件 ) 2 { 3 语句1; 4 语句2; 5 .... 6 } 1)如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容).然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 2)while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行 例如: 1 /* 2 输出十次hello world 3 */ 4 int main(

golang语言学习第二课:变量类型及常量与枚举

go语言的变量类型: bool (true为0,false不等于0), string int 分好多种int,有点头晕,但用默认的int就足够了,根据机器判断,是32位的用int32,是64位的用int64. byte, 又是uint8的别名. rune(类似char,但是是utf-8编码的char),又是int32的别名. go语言没有float,只有float32, float 64(即使在32位的架构上还是64位) go语言原生支持复数类型,类似python, python也支持复数.go