Go流程控制3:for循环

基本语法

package main

func main(){
    for 初始化条件; 判断条件; 条件变化{
		语句块    
    }
}

示例1:

计算1-10的和

package main
import "fmt"

func main(){
    sum := 0
    for i := 1 ; i<1; i++{
        sum = sum + i
    }
	fmt.PrintLn(sum)
}

//55

示例2:

遍历字符串中的每一次个字符

package main
import "fmt"

func main() {
	str :="abc"
	for i := 0 ; i<len(str);i++{
		fmt.Printf("%c\n",str[i])
	}
}

//a,b,c

示例3:

嵌套使用

package main

import "fmt"

func main() {
	for i := 0; i < 3; i++ {
		for j := 0; j < 3; j++ {
			fmt.Println(i,j)
		}
	}
}

//00,01,02,10,11,12,20,21,22

百钱百鸡问题

公鸡5钱一只,母鸡3钱一只,小鸡1钱三只
要求:买100鸡,正好花100钱

枚举法

package main
import "fmt"

func main(){
	var price int
    //循环遍历,计算价格和个数
	for cock := 0; cock <= 100; cock++{
		for hen := 0; hen <= 100; hen++{
			for chicken := 0; chicken <= 100; chicken += 3{
				price = cock*5 + hen*3 + chicken/3
                //如果符合条件输出
				if price == 100 && cock + hen + chicken == 100{
					fmt.Println(cock,hen,chicken)
				}
			}
		}
	}
}


/*
结果:
0 25 75
4 18 78
8 11 81
12 4 84
*/

以上,我们用穷举法,计算出了这个问题的解,当然,就解决“百钱百鸡”问题,这个算法还有很大的优化空间。在这个计算中,大部分计算,都是无效的。我们可以通过限定范围,减少程序的运行次数。
例如:
cock不可能大于20
hen不可能大于34

注意问题

for后可不加判断语句,进入死循环:

//死循环,一直打印i的值

package main
import "fmt"

func main(){
	var i int = 0
	for{
		fmt.Println(i)
		i++
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值