基本语法
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++
}
}