GO语言学习之路6

2022/01/02

1、for循环基本语法
    for循环的循环条件是一个返回布尔值的表达式
(1)
    for 循环变量初始化; 循环条件; 循环变量迭代 {
        //循环执行语句
    }

(2)
    for 循环判断条件 {
        //循环执行语句
    }
    Demo:
    j := 1
    for j <= 10 {
        fmt.Println("hello, world!")
        j++
    }
(3)
    for {
        //循环执行语句
    }
    //这个写法等价于 for ; ; {}
   
(4)golang提供for-range的方式,可以方便遍历字符串和数组
    Demo 传统方式:
	var str string = "hello,world!"
	for i := 0; i < len(str); i++ {
		fmt.Printf("%c \n", str[i])
	}

    for-range方式遍历:
	var str string = "hello,world!"
	for index, val := range str {
		fmt.Printf("index = %d, val = %c \n", index, val)
	}
    上面两种的区别主要体现在遍历方式,如果字符串有中文,那么传统的遍历字符串的方式就会错误。
    原因:传统的遍历是按照字节来遍历,而一个汉字在utf8编码是对应3个字节。
    如何解决: 需要将str转成 []rune 切片
    	var str string = "hello,中国!"
	    str2 := []rune(str)
	    for i := 0; i < len(str2); i++ {
		    fmt.Printf("%c \n", str2[i])
	    }

    对于for-range而言是按照字符方式去遍历,因此如果字符串有中文也是没问题的。、
    需要注意的是 for-range中遇到中文字符时,index会加3

2、while和do..while的实现
    go语言没有while和do..while的语法,但是可以通过for循环来实现一样的效果
    (1) while 效果
   	var index int = 0
	for {
		if index > 10 {
			break
		}
		index++
		fmt.Println("hello, ", index)
	}
    (2) do while 效果
    var index int = 0
	for {
		index++
		fmt.Println("hello, ", index)
		if index > 10 {
			break
		}
	}
   
===========================实现空心金字塔以及简单的乘法口诀表==================
//另写一篇文章,简单的描述下思路

3、break 和 continue

label1:
	for i := 0; i < 5; i++ {
		//label2:

		for j := 0; j < 5; j++ {
			if j == 2 {
				break label1
			}
			println("j = , ", j)
		}
	}
//如果break label1 执行到break的时候就知道跳出label1的循环。 标签名随意取
//如果只写break 则默认跳出最近一层的循环

continue同理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值