ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1.1、Go基础语法之循环与分支

2021-01-02 03:32:24  阅读:193  来源: 互联网

标签:case 1.1 fmt height 语法 Println 180 Go else


眨眼2020就过了,回想2020年实在太难了...希望2021年可以顺顺利利。祝大家新年快乐,牛气冲天!

分支


分支就是我们常见的if else条件判断,要认识分支,首先我们先得了解下基本类型——Boolean类型

Bool类型只有两个常量值:true(真)和false(假)

分支表示的就是当某个条件成立的时候,执行某片代码段。

像python和Js中,会把空字符串""认为是false,非空字符串为true,但是在Go中却只认为当表达式结果为truefalse的时候条件才会成立(所谓表达式可以认为是一系列的计算式)。

下面介绍一些常用的表达式输出结果为bool类型语句:

  • strings包下的 strings.Contanins方法:判断一个字符串是否包含所给字符串片段

    package main
    
    import (
    	"fmt"
    	"strings"
    )
    
    func main() {
    	var str = "hello jochen"
    
    	if strings.Contains(str, "jochen") {
    		fmt.Println("如果字符串中包含jochen,则输出这段话")
    	}
    
    }
    // 输出了if代码段{}中的内容
    
  • 比较两个值。例如> < == !=(其中==表示等于、!=表示不等于)这些比较运算符,与变量、表面值等组成的表达式语句的结果也是bool类型的值

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	var height = 179
    
    	if height < 180 {
    		fmt.Println("你没有180")
    	} else if height > 210{
    		fmt.Println("你是巨人吗?”)
        } else{
            fmt.Println("180大帅哥")
            
        }
    
    }
    // 输出 : 你没有180
    
  • 逻辑运算符组成的表达式,像是||(或),&&(与)、!(取反,及true变为false,false变为true)与变量、表面值组成的表达式其结果也为bool类型,它们通常用来同时检查多个bool表达式
    ps:程序中的逻辑表达式具有短路逻辑,意思是当一个逻辑或(||)bool表达式为true后,其后面的逻辑表达式都不会去判断,而逻辑与(&&)正好相反

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	var height = 179
    	var age = 30
    	if height > 180 && age < 30 {
    		fmt.Println("有一米八,同时年纪小于30岁,是年轻帅小伙")
    	} else if height < 180 || age >= 30 {
    		fmt.Println("肯定没有一米八或大于三十岁")
    	}
    
    }
    // 输出 : 肯定没有一米八或大于三十岁
    

上面介绍的两个代码片段我们可以看到分支语句,if else的使用,它可以让程序在不同的条件执行相应的代码片段。当代码有多个分支条件的时候:
我们可以在第一个分支使用if bool表达式,其后的分支使用else if bool表达式。我们还可以使用else语句(它表示的是,当上面所有的分支条件都不符合的时候,走该代码片段),这样我们就可以可预知的设计我们的程序在不同的条件下执行不一样的行为动作
PS:需要注意的在go中:if后面如果跟有其他的分支如else ifelse等关键字,必要得紧跟在上一个分支的右大括号后面},不能换行写!这是go的语法规则!

package main

import (
	"fmt"
)

func main() {
	var height = 179

	if height < 180 {
		fmt.Println("你没有180")
	} 
	else if height >= 180 {    // 必须紧跟if代码段后面 这里会报错
		fmt.Println("180大帅哥")
	}  
}

分支语句除了可以使用if else还可以使用switch语句,一段代码简单学习下,因为这种方式我不是很喜欢用

package main

import (
	"fmt"
)

func main() {
	var height = 179

	switch height {
	case 180:
		fmt.Println("有一米八,同时年纪小于30岁,是年轻帅小伙")
	case 179:
		fmt.Println("没有一米八")
		fallthrough  // 执行万后会继续执行下一个case的代码片段
	case 178:
		fmt.Println("没有一米八")
		fallthrough
	case 177:
		fmt.Println("没有一米八")
	}
}

// 输出三个 :没有一米

case就相当于等于号,表示当匹配时执行其冒号:下的代码段

go语言中switch中有一个特色关键字fallthrough,它表示的是执行下一个case的代码段,即使该代码段不符合条件。
这与别的语言不太一样,在c#等其他语言中,switch满足条件后执行代码片段是以遇到break关键字为,也就是说如果没有break关键字代码会执行其下面的case下的代码段直到遇到break或是switch语句结束为止
而这一过程在go语言是相反的,代码符合条件后只会执行case下匹配的代码段,如果想继续往下执行case下面的case代码段则需要使用fallthrough关键字

循环


循环就是在满足某个条件下,重复的执行某一个代码片段,有了上述学习常用条件表达式的基础。对于"满足某个条件这句话"小伙伴们应该有了一些理解

go中使用for关键字使得代码重复执行

for后面可以跟条件,如果没有条件,则表示死循环(可以在代码中使用break跳出循环)

比较简单,直接看代码理解即可:

image-20210102030319377

标签:case,1.1,fmt,height,语法,Println,180,Go,else
来源: https://www.cnblogs.com/deehuang/p/14221502.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有