Go 语言条件语句

  条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。

下图展示了程序语言中条件语句的结构:

if 语句由布尔表达式后紧跟一个或多个语句组成。

语法

Go 编程语言中 if 语句的语法如下:

if 布尔表达式 {
// 在布尔表达式为 true 时执行
}

 栗子~

 package main

 import (
"fmt"
) func main() {
//定义局部变量
a := 85 //使用go中的if判断语句
if a > 80 {
//满足判断条件,执行输出一下内容
fmt.Println("成绩良好~,分数为:", a)
}
}

以上代码执行结果为:

成绩良好~,分数为: 85

Go 语言 if...else 语句

if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。

语法

Go 编程语言中 if...else 语句的语法如下:

if 布尔表达式 {
//判断条件为真时候需要执行的代码块
} else {
//判断条件为假的时候需要执行的代码块
}
 
栗子~
 package main

 import (
"fmt"
) func main() {
//定义局部变量
a := 30 if a > 40{
//判断条件变量a的值如果大于40,则执行下面的代码块,输出大于40哦~
fmt.Println("大于40哦~")
}else {
//判断条件不满足大于40,则执行下面的代码块输出小于40哦~
fmt.Println("小于40哦~")
}
//打印变量a的值
fmt.Println("变量a的值为:",a)
}

执行结果为

小于40哦~
变量a的值为: 30

Go 语言循环语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句,有些循环是有循环次数,有些事无限循环的,下面将会举例说明。

语法

Go语言的For循环有3中形式,只有其中的一种使用分号。

和 C 语言的 for 一样:

for 初始化变量;判断条件;修正变量{}

和 C 的 while 一样:

for 判断条件 {}

无限循环(死循环)

for { }

for语句执行过程如下:

  1. 先对变量初始化赋值
  2. 判断初始化的变量是否满足循环的条件,如果满足即为真,则执行循环内部的代码块,然后执行修正条件(递增++或者递减--),然后进入第二 第三...轮循环,直到条件不满足,循环结束!

for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:

for key, value := range oldMap {
newMap[key] = value
}

for语句语法流程如下图所示:


 栗子~

 package main

 import (
"fmt"
) func main(){
//初始化局部变量sum,用于求和的变量
sum := 0
//初始化变量i为1,判断条件为i小于等于100,修正判断条件的是每循环一次i递增+1
for i := 1; i<=100; i++{
//每一次循环都让当前的sum值加上当前循环i的值
sum += i
}
//循环结束以后100之内的所有正整数的和
fmt.Println("100之内整数的和为:", sum) var i int = 15
var j int
//当变量j小于变量i的时候进入循环体
for j < i {
//修正循环体的条件,每循环一次j+1
j++
fmt.Println("j的值为:", j)
} //初始化局部变量l1(10位的整数型数组)
l1 := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
//循环数组
for index,v := range l1{
//打印数组每个索引位置上的元素
fmt.Printf("第 %d 位的元素为: %d\n", index, v)
} }

以上代码执行结果为:

100之内整数的和为: 5050
j的值为: 1
j的值为: 2
j的值为: 3
j的值为: 4
j的值为: 5
j的值为: 6
j的值为: 7
j的值为: 8
j的值为: 9
j的值为: 10
j的值为: 11
j的值为: 12
j的值为: 13
j的值为: 14
j的值为: 15
第 0 位的元素为: 1
第 1 位的元素为: 2
第 2 位的元素为: 3
第 3 位的元素为: 4
第 4 位的元素为: 5
第 5 位的元素为: 6
第 6 位的元素为: 7
第 7 位的元素为: 8
第 8 位的元素为: 9
第 9 位的元素为: 10

Go 语言允许用户在循环内使用循环。接下来我们将为大家介绍嵌套循环的使用

语法

以下为 Go 语言嵌套循环的格式:

for [判断条件 |  ( 初始化变量; 判断条件; 修正判断条件的递增或者递减 ) | Range]
{
for [判断条件 | ( 初始化变量; 判断条件; 修正判断条件的递增或者递减 ) | Range]
{
循环中的代码块;
}
循环外的代码块;
}

栗子~

以下实例使用循环嵌套来输出 2 到 100 间的素数:


 package main

 import (
"fmt"
) func main(){
//定义局部变量
var i, j int for i=2; i < 100; i++ {
for j=2; j <= (i/j); j++ {
if i%j == 0 {
break//如果发现因子,则不是素数,退出当前的循环体
}
}
if j> (i/j) {
fmt.Printf("%d 是素数\n", i)
}
} }

以上代码执行结果为:

2 是素数
3 是素数
5 是素数
7 是素数
11 是素数
13 是素数
17 是素数
19 是素数
23 是素数
29 是素数
31 是素数
37 是素数
41 是素数
43 是素数
47 是素数
53 是素数
59 是素数
61 是素数
67 是素数
71 是素数
73 是素数
79 是素数
83 是素数
89 是素数
97 是素数

Go 语言 break 语句

Go 语言中 break 语句用于以下两方面:

  1. 用于循环语句中跳出循环,并开始执行循环之后的语句。
  2. break在switch(开关语句)中在执行一条case后跳出语句的作用。

break 语句流程图如下:

栗子~

 package main

 import (
"fmt"
) func main(){
for i := 1;i<10;i++{
//当i的第8次循环时候,跳出整个循环体
if i == 8{
fmt.Printf("for的第 %d 次循环,循环中遇到break退出整个循环体咯~",i)
//跳出整个循环体
break
}
fmt.Printf("for的第 %d 次循环.\n",i)
} }

以上代码执行结果为:

for的第 1 次循环.
for的第 2 次循环.
for的第 3 次循环.
for的第 4 次循环.
for的第 5 次循环.
for的第 6 次循环.
for的第 7 次循环.
for的第 8 次循环,循环中遇到break退出整个循环体咯~

Go 语言 continue 语句

Go语言的continue语句有点像break语句。但是continue不是跳出整个for循环,而是跳过当前循环而执行下一次循环语句。

for循环中,执行continue语句会触发for增量语句的执行

栗子~

 package main

 import (
"fmt"
) func main(){ var sum int = 0
for i := 1; i<=100; i++ {
//当变量i和2取余数不等于0,即代表是奇数,就跳出本轮循环执行下次循环
if i%2 != 0 {
//跳过本轮循环执行下一次循环
continue
} else {
//当时偶数的时候,就做和的叠加
sum += i
}
}
fmt.Printf("100之内所有偶数的和为: %d", sum)
}

以上代码执行结果为:

100之内所有偶数的和为: 2550

Go 语言 goto 语句

Go 语言的 goto 语句可以无条件地转移到过程中指定的行。

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

语法

goto 语法格式如下:

goto LABEL;
..
.
LABEL: 代码段;

break 语句流程图如下:

栗子~

 package main

 import (
"fmt"
) func main(){
for i := 1; i<10; i++{
//当第六次循环的时候,满足判断条件,执行goto
if i == 6{
//会直接调到后面的LABEL对应的语句,循环将不再继续
goto LABEL
}else{
fmt.Printf("for循环内的第%d次循环.\n", i)
}
}
LABEL: fmt.Printf("循环到第6次咯,宝宝不要在循环了~")
fmt.Println("我是goto下面的语句~") }

以上代码执行结果为:

for循环内的第1次循环.
for循环内的第2次循环.
for循环内的第3次循环.
for循环内的第4次循环.
for循环内的第5次循环.
循环到第6次咯,宝宝不要在循环了~我是goto下面的语句~

Go 语言 无限循环 语句

Go 语言的 无限循环 语句,只要你计算机不挂掉,你不手动终止程序,它可以陪你到天荒地老~~

栗子~

 package main

 import (
"fmt"
) func main(){
//无限循环语句~~陪你到天荒地老...
for {
fmt.Println("在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~")
} }

以上代码执行结果为:

在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~
在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~
在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~
在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~
在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~
在那美丽的大草原,有一群草泥马,草泥马 草泥马 草泥马~~~~
................
................
................

Go 语言 switch 语句

switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。。

switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break

语法

Go 编程语言中 switch 语句的语法如

 package main

 import (
"fmt"
) func main(){
//定义全局变量
grade := "A"
marks := 90 //根据局部变量marks的赋值,分别给grade二次赋值
switch marks {
case 90:
grade = "A"
case 80:
grade = "B"
case 60,70:
grade = "C"
default:
grade = "D"
} //根据grade的二次赋值,选择对应的输出
switch grade {
case "A":
fmt.Println("优秀哦~")
case "B":
fmt.Println("良好 良好~")
case "C":
fmt.Println("是不是TMD傻")
default:
fmt.Println("MD,脑袋糊浆糊了~")
}
fmt.Println("你的等级是:",grade)
}

以上代码执行结果为:

优秀哦~
你的等级是: A

Type Switch

switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。

Type Switch 语法

switch x.(type){
case type:
代码块;
case type:
代码块;
/* 你可以定义任意个数的case */
default: /* 可选 */
代码块;
}

栗子~

 package main

 import (
"fmt"
) func main() {
var x interface{} = 100.123 //通过反射获取类型
switch i := x.(type) {
case nil:
fmt.Printf(" x 的类型 :%T",i)
case int:
fmt.Printf("x 是 int 型")
case float64:
fmt.Printf("x 是 float64 型")
case func(int) float64:
fmt.Printf("x 是 func(int) 型")
case bool, string:
fmt.Printf("x 是 bool 或 string 型" )
default:
fmt.Printf("未知型")
}
}

以上代码执行结果为:

x 是 float64 型

Go语言循环判断的使用~的更多相关文章

  1. R语言学习——循环判断语句

    循环  判断 函数 函数是一个对象,可以赋值 函数要放在调用函数的前面 输入输出 read.csv()------文本文件 csv是comma separated value的英文缩写,其读取逗号分隔 ...

  2. Python条件循环判断

    1.条件判断语句 Python中条件选择语句的关键字为:if .elif .else这三个.其基本形式如下: 1 2 3 4 5 6 7 8 9 age_of_cc = 27   age = int( ...

  3. c语言 如何判断是不是 可显字符

    c语言 如何判断是不是 可显字符int isprint(int c)若可显示返回1,否则0:要包含头文件ctype.h

  4. 李洪强漫谈iOS开发[C语言-043]-判断较早日期

    李洪强漫谈iOS开发[C语言-043]-判断较早日期

  5. jquery for循环判断是否重复

    //使用for循环 判断是否有重名 var len=$("li").length;//获取页面中所有li的数量 for(var i=0; i<len; i++){ oldna ...

  6. c 语言文本文件判断是否到达结尾的问题

    在c语言中,判断文件结尾有两种方法,第一种是使用feof()函数,feof(fp)用于测试fp所指向的文件的当前状态是否为“文件结束”.如果是,函数则返回的是非0值(真),否则为0(假),要注意的是, ...

  7. 关于pthread_cond_wait使用while循环判断的理解

    在Stevens的<Unix 环境高级编程>中第11章线程关于pthread_cond_wait的介绍中有一个生产者-消费者的例子P311,在进入pthread_cond_wait前使用w ...

  8. C 语言实例 - 判断回文数

    C 语言实例 - 判断回文数 判断一个数是否为回文数. 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=,则称n为一回文数:但若n=,则n不是回文数 ...

  9. C 语言实例 - 判断数字为几位数

    C 语言实例 - 判断数字为几位数 用户输入数字,判断该数字是几位数. 实例 #include <stdio.h> int main() { long long n; ; printf(& ...

随机推荐

  1. 一只猿:使用flask来做一个小应用

    上周 @萍姐 问我如何抓取天猫上面店铺的评分,看了下挺简单的,于是花了点时间写了个Python脚本,加上web.py做成一个web服务,使用起来还不错,今天来看的时候发现当时为了方便直接用web.py ...

  2. Java String charAt()方法

    描述 此方法返回位于字符串的指定索引处的字符.该字符串的索引从零开始. 语法 此方法定义的语法如下: public char charAt(int index) 参数 这里是参数的细节: index  ...

  3. Hotspot JVM垃圾回收器

    前两篇<JVM入门——运行时数据区><JVM常见垃圾回收算法>所提到的实际上JVM规范以及常用的垃圾回收算法,具体的JVM实现实际上不止一种,有JRockit.J9等待,当然最 ...

  4. CJOJ 1087 【NOIP2010】乌龟棋 / Luogu 1541 乌龟棋(动态规划)

    CJOJ 1087 [NOIP2010]乌龟棋 / Luogu 1541 乌龟棋(动态规划) Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个 ...

  5. 中缀表达式变后缀表达式、后缀表达式(逆波兰)求值(python版本)

    定义: 中缀表达式: 在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表达式 后缀表达式: 又叫逆波兰表达式 ,不包含括号,运算符放在两个运算对象的后面,所有的计算 ...

  6. Oozie安装时放置Mysql驱动包的总结(网上最全)

    不多说,直接上干货! 对于在oozie里放置Mysql驱动包的总结 根据网上的参考以及我个人经验安装的使用 (1)放一份到$OOZIE_HOME/libext下 (是 mysql-connector- ...

  7. 玩玩微信公众号Java版之准备

    微信自2013年流行起来,现在的发展已经超过了我们的想象,那么对应的公众平台,小程序等都是让人眼前一亮的东西,这里来学习一下微信工作号的对接,实现为Java,希望大家一起学习!   这里大概描述一下所 ...

  8. java 读取文件的路径

    1. 通用定位到用户目录下:   String userDir = System.getProperty("user.dir"); 2. web项目定位到WEB-INF/class ...

  9. (转) 使用jdk的xjc命令由schema文件生成相应的实体类

    背景:在webservice的开发过程中涉及到这一知识点,又必要来学习一下. 1 根据编写的schema来生成对应的java实体 1.1 实战 xcj命令有schema文件生成Java实体类 1.使用 ...

  10. Python-cookies

    附新手工具: python新手工具下载链接:http://pan.baidu.com/s/1eS8WMR4 密码:7eso 注册码:http://idea.liyang.io py和编辑器安装教程链接 ...