一.逻辑运算符(唯一)
&&,短路与
||,短路或
!,非
逻辑与&&运算优先级高于逻辑或||
二.for循环嵌套
1.百钱百鸡
package main
import (
"fmt"
)
func main() {
count:=0
chicken:=0
for cock:=0;cock<=20 ;cock++ {
for hen:=0;hen<=33 ;hen++ {
chicken=100-cock-hen
count++
if chicken%3==0 && cock*5+hen*3+chicken/3==100{
fmt.Printf("公鸡: %d 母鸡: %d 小鸡: %d",cock,hen,chicken)
fmt.Println()
}
//for chicken:=0;chicken<=100 ;chicken+=3 {
// count++
// if cock+hen+chicken==100 && cock*5+hen*3+chicken/3==100{
// fmt.Printf("公鸡 %d 母鸡 %d 小鸡 %d",cock,hen,chicken)
// fmt.Println()
// }
//}
}
}
fmt.Println(count)
}
优化后的代码执行次数:714次
注释的代码为优化前,执行次数:24276次
结果为:
公鸡: 0 母鸡: 25 小鸡: 75
公鸡: 4 母鸡: 18 小鸡: 78
公鸡: 8 母鸡: 11 小鸡: 81
公鸡: 12 母鸡: 4 小鸡: 84
2.水仙花数
package main
import "fmt"
func main() {
for i := 100; i < 1000; i++ {
unit := i % 10
decade := i % 100 / 10
hundreds := i / 100
if unit*unit*unit+decade*decade*decade+hundreds*hundreds*hundreds == i {
fmt.Println(i)
}
}
结果为:
153
370
371
407
3.乘法表
import "fmt"
func main() {
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d*%d=%d ", j, i, i*j)
}
fmt.Println()
}
}
结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
4.倒直角三角形
package main
import "fmt"
func main() {
for i:=0;i<5 ;i++ {
for j:=0;j<5-i ;j++ { //或 for j:=5-i;j>0 ;j-- { //或 for j := 5; j >i; j--{
fmt.Print("*")
}
fmt.Println()
}
}
结果:
*****
****
***
**
*
5.直角三角形
import "fmt"
func main() {
for i:=0;i<5 ;i++ {
for j:=0;j<i ;j++ {
fmt.Print("*")
}
fmt.Println()
}
}
结果
*
**
***
****
*****
6.等边三角形
import "fmt"
func main() {
for i := 1; i < 6; i++ {
for j := 0; j < 6-i; j++ {
fmt.Print(" ")
}
for l := 0; l <i; l++ {
fmt.Print("* ")
}
fmt.Println();
}
}
结果
*
* *
* * *
* * * *
* * * * *
三 for循环格式
- 一般格式
for init;condition;post{}
2.条件判断式
for condition{}
3.无限循环式 ,相当于java的while(true){}
for {;}
4.range格式,一般用于迭代循环(遍历).有两个返回值
for key,value:=range Map{}
for嵌套循环外层的跳出可使用break label(label可定义在需要跳出的地方)
网友评论