go语言中间的循环

在Go语言中只有很少的几个控制结构,它没有while或者do-while循环。

但是它有for、switch、if。而且switch接受像for那样可选的初始化语句。下面来认识一下他们

一、if语句

Go语言中的if像下面这个样子:

if x > 0 {
    return y
} else {
    return x
}

一般不需要加圆括号,不过,如果你写上,也是没有问题的(亲测,写上圆括号也可以的~~)。比如:

if (3>2) {
        fmt.Println("test if")
}else if true {
        fmt.Println("test else if")
}else{
        fmt.Println("test else")
}

//输出 test if

二、switch语句

Go的switch非常灵活。表达式不必是常量或整数。
而在java中switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以,

那是因为byte,short,shar可以自动提升(自动类型转换)为int,也就是说,你放的byte,short,shar类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),
其实最后放的还是int类型!

switch语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break(又跟java不一样哦!)

func switchFuncString(a string) {
    //字符串
    switch a {
    case "test1":
        fmt.Println("test1")
    case "test2", "test3":
        fmt.Println("testOhter")
    default:
        fmt.Println("NoTest")
    }

}

func switchFuncInt(a int) {
    //数字
    switch a {
    case 1:
        fmt.Println("1")
    case 2:
        fmt.Println("2")
    case 3:
        fmt.Println("3")
    }
}

func switchFuncBool(c byte) {
    //switch后面什么都没有?它会匹配true
    switch {
    case ‘0‘ <= c && c <= ‘9‘:
        fmt.Println(c - ‘0‘)
    case ‘a‘ <= c && c <= ‘f‘:
        fmt.Println( c - ‘a‘ + 10)
    case ‘A‘ <= c && c <= ‘F‘:
        fmt.Println( c - ‘A‘ + 10)
    }
}

但是如果,你就希望匹配之后,继续匹配下面一条怎么办呢?还是有办法的,使用“fallthrough”即可,例如:

func switchFuncInt(a int) {
    //数字
    switch a {
    case 1:
        fmt.Println("1")
        fallthrough
    case 2:
        fmt.Println("2")
    case 3:
        fmt.Println("3")
    }
}

调用switchFuncInt(1),打印出1和2来。

三、for循环

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

  1. for init; condition; post { }          和C 的for 一样
  2. for condition { }                         和while 一样
  3. for { }                                      和C 的for(;;) 一样(死循环)

直接上代码~~

package main

import "fmt"

func main() {
    simpleFor()

    var test string = "asdfghjkl"
    fmt.Println(reverse([]byte(test)))
}

//打印0~9
func simpleFor() {
    for i := 0; i < 10; i++ {
        fmt.Println(i)
    }
}

// Reverse a
func reverse(a []byte) string {
    //由于Go没有逗号表达式,而++和--是语句而不是表达式,
    //如果你想在for中执行多个变量,应当使用平行赋值。
    for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 {
        a[i], a[j] = a[j], a[i]
    }
    return string(a)
}

分支、循环是很基础的东西,所以有必要多练练手~~

下面来做两个题目玩玩~~

1. 创建一个基于for的简单的循环。使其循环10次,并且使用fmt 包打印出计数器的值。
2. 用goto改写1的循环。保留字for不可使用。
3. 再次改写这个循环,使其遍历一个array,并将这个array打印到屏幕上。

代码:

时间: 2024-10-29 03:46:43

go语言中间的循环的相关文章

C语言实现非循环双链表节点的删除(带头结点尾结点)

我在之前一篇博客<C语言实现非循环双链表节点的删除(不带头结点)>中详细讲解了不含头尾节点的双链表中删除一个节点,处理过程还是稍显麻烦.自从我们学习使用头尾节点来处理双链表后,删除过程就非常方便.代码上传至 https://github.com/chenyufeng1991/DeleteNodeDoubleLinkedList_HeadList . 核心代码如下: //删除pos位置的节点 int DeletePosList(Node *pHead,Node *pTail,int pos){

java语言基础与go语言基础,循环语句的区别

java语言  循环语句 for(表达式1(参数初始化):表达式2(条件判断):表达式3(更新循环变量)){ 语句循环操作: } 首先;参数的初始化,接下来条件判断,(条件成立),再执行循环操作,然后更新循环变量,又来做条件判断(条件成立),又执行循环操作:以此循环. 一,循环的三要素 1,循环变量 2,循环条件 3,循环体 二,do-while循环(先循环,再判断,至少循环一次) do{ 语句: }while(条件); 三,while循环(先判断,再循环,有可能一次也不循环) while(条件

单片机学习之:C语言基础——while循环

=======while循环用法======语法格式: while(表达式) { 循环体; } 功能:进入while语句后,反复判断表达式真假,若为真(为假则跳出循环),则执行循环体内语句. 实例: #include<stdio.h>int main(){ int i = 0; while(i < 5) { printf("i = %d\n",i); i++; } return 0;} 在VC++6.0中输出结果为: i = 0i = 1i = 2i = 3i = 4

单片机学习之:C语言基础——for循环及for嵌套

==========for循环及for嵌套=========- for循环语法格式: for(表达式1;表达式2;表达式3) { 循环体; } //功能:进入for语句时,先执行表达式1(只执行一次!),然后对表达式2进行真假判断,若为真(若为假则退出for循环),则执行一次循环体内容,后执行表达式3,表达式3执行完之后,重新对表达式2进行真假判断. 例如: #include<stdio.h>int main(){ int x; for(x=0; x<5; x++) { printf(&

电脑小白学习软件开发-C#语言基础之循环重点讲解,习题

写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的人.当然因为技术的连贯性,推荐按照顺序查看. 上次课程:电脑小白自学软件编程-.Net语法基础之循环语句,纯技巧干货 近期,致力于进行C#语言教程的写作.写一系列可以供电脑小白学习软件开发的文章,帮助更多初学者入门学习IT编程. 课程总目录:因头条无法自定义目录,大家关注:“做全栈攻城狮”微信公众号

JS脚本语言里的循环

js脚本语言:  循环:(循环操作某一个功能(执行某段代码)) 四要素: 循环初始值  循环条件  状态改变  循环体 for(穷举  迭代) while 举例:(穷举) 与7相关的数 <script type="text/javascript"> var  s=""; for(var i=0;i<100:i++) {  if(i%7==0||i%10==7||pareint(i%10==7) { s=s+i+"|" } }  

C语言-初学循环

循环是C语言的三种基本结构之一,在很多问题中都需要用到循环控制,如1-100之间不能够被7整除的数的和,如果不使用循环的话,我们只能先把1-100不能被7整除的数找出来,然后再求出它们之和,但如果使用循环的话,可以让程序语句从1开始循环,只要是不能够被7整除的数都将被输出并计算累加和,执行完最后一次循环操作后,就能够得到最终结果,这个时候就使用循环语句就很有必要. 1.循环语句结构 循环语句分为四种:while,do...while,for,goto(goto语句不推荐使用,本文不做具体讲述).

单片机c语言教程:C51循环语句

单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的(当然能使用定时器来做,这里就不讨论),如果是写 1000 条空语 句那是多么麻烦的事情,再者就是要占用很多的存储空间.我们能知道这 1000 条空语句, 无非就是一条空语句重复执行 1000 次,因此我们就能用循环语句去写,这样不但使程序 结构清晰明了,而且

R语言︱函数、循环、if族/for、switch、repeat——function结合

后续加更内容: 应用一:if族有哪些成员呢?--if/ifelse/stopifnot ------------------------------------ 1.循环 ##循环for iris allzl=unique(iris$setosa) for (i in 1:2){ pp=iris[iris$setosa==allzl[i],] plot(pp$Sepal.Length~pp$Sepal.Width) } for循环中,需要将数值组合起来,如果数据整齐可以用matrix:如果不整齐

R语言中的循环及其扩展:iter和foreach

R中有三种不同的循环结构: 1.repeat结构 它只是简单的重复同一个表达式:repeat expression,如果要跳出循环,可以使用break命令,若要跳至循环中的下一轮迭代,需要使用next命令:如果在循环中不包括break命令,R代码将会是一个无限循环. 因此,常用的结构如下: repeat { expression if(condition){ break } } 举例如下: #求 1 -100 的和i <- 1 sum_100 <- 0 repeat{sum_100 = sum