《Golang 入门系列六》golang的控制语句

IT--小哥 · · 524 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

前言:本文主要阐述golang中的if else、switch语句和for循环的用法。

 

一、if else语句

1.1  基本语法

在有些情况下,条件语句两侧的括号是可以被省略的;当条件比较复杂时,则可以使用括号让代码更易读。条件允许是符合条件,需使用 &&、|| 或 !,你可以使用括号来提升某个表达式的运算优先级,并提高代码的可读性。

第一种形式:
if condition {
    // do something 
} else {
    // do something 
}
第二种形式:
if initialization; condition {
    // do something
}

1.2  示例

package main

import "fmt"

func main() {

	// 第一种形式
	n := 7
	if n >= 0 {
		fmt.Printf("%d is >=0\n",n)
	} else {
		fmt.Printf("%d is <0\n",n)
	}

	//第二种形式
	//初始化的变量为局部变量
	if m := 9; m < 0 {
		fmt.Printf("%d is <0\n",m)
	} else if m > 0 {
		fmt.Printf("%d is >0\n",m)
	} else {
		fmt.Printf("%d is = 0",m)
	}

	//带bool值的
	if bool1 := true; !bool1 {
		fmt.Printf("you are not right")
	} else if bool1 {
		fmt.Printf("you are right")
	}
}

 

二、switch语句

2.1  基本语法

每一个case分支都是唯一的,从上至下逐一测试,直到匹配为止。如果在执行完每个分支的代码后,还希望继续执行后续分支的代码,可以使用fallthrough关键字来达到目的。

switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

2.2  示例

package main

import "fmt"

func main() {

	switch n := 7; {
	case n > 0 && n == 7 :
		fmt.Printf("%d is > 0 && n == 7\n",n)
		fallthrough
	case n > 5 || n == 5 :
		fmt.Printf("%d is > 5 || n == 5\n",n)
		//fallthrough
	default :
		fmt.Printf("%d is unavailable\n",n)
	}
}

 

三、for 语句

3.1  基本语法

循环开始前,会执行且仅会执行一次初始化语句,初始化变量是局部变量;条件语句在每次循环开始前都会进行判断,一旦判断结果为 false,则退出循环体;修饰语句 一般用于增加或减少计数器,循环结束后执行。

 for initialisation; condition; post {
        }

3.2  示例

package main

import "fmt"

func main() {

	for n := 1; n < 10; n++ {
		for m := 1; m <= n; m++ {
			fmt.Printf("%d * %d = %d\t",m,n,m*n)
		}
		fmt.Println()
	}
}

 

四、Break 与 continue

4.1   break语句

一个 break 的作用范围为该语句出现后的最内部的结构,它可以被用于任何形式的 for 循环(计数器、条件判断等)。但在 switch 或 select 语句中,break 语句的作用结果是跳过整个代码块,执行后续的代码。

package main

import "fmt"

func main() {

	for n := 1; n < 5; n++ {
		for m := 1; m < 5; m++ {
			if m == 2 {
				break
			}
			fmt.Printf("%d  VS  %d\n",n,m)
		}
	}

}

4.2  continue语句

关键字 continue 忽略剩余的循环体而直接进入下一次循环的过程,关键字 continue 只能被用于 for 循环中

package main

import "fmt"

func main() {

	for n := 1; n < 5; n++ {
		if n == 2 {
			continue
		}
		fmt.Printf("%d\n",n)
	}

}

 

五、goto语句

for、switch 或 select 语句都可以配合标签(label)形式的标识符使用,标签的名称是大小写敏感的,为了提升可读性,建议使用全部大写字母

package main

import "fmt"

func main() {
	for i := 0; i <= 5; i++ {
		for j := 0; j <= 5; j++ {
			if j == 4 {
				goto LABEL1
			}
			fmt.Printf("i is: %d, and j is: %d\n", i, j)
		}
	}
	LABEL1:
}

为了方便大家交流,本人开通了微信公众号和QQ群,QQ群:291519319,喜欢技术的一起来交流吧


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:IT--小哥

查看原文:《Golang 入门系列六》golang的控制语句

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

524 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传