基本语法
package mainfunc main(){for 初始化条件; 判断条件; 条件变化{语句块}}
示例1:
计算1-10的和
package mainimport "fmt"func main(){sum := 0for i := 1 ; i<1; i++{sum = sum + i}fmt.PrintLn(sum)}//55
示例2:
遍历字符串中的每一次个字符
package mainimport "fmt"func main() {str :="abc"for i := 0 ; i<len(str);i++{fmt.Printf("%c\n",str[i])}}//a,b,c
示例3:
嵌套使用
package mainimport "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 mainimport "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 754 18 788 11 8112 4 84*/
以上,我们用穷举法,计算出了这个问题的解,当然,就解决“百钱百鸡”问题,这个算法还有很大的优化空间。在这个计算中,大部分计算,都是无效的。我们可以通过限定范围,减少程序的运行次数。
例如:
cock不可能大于20
hen不可能大于34
……
注意问题
for后可不加判断语句,进入死循环:
//死循环,一直打印i的值package mainimport "fmt"func main(){var i int = 0for{fmt.Println(i)i++}}
