美文网首页
go基础(二) for循环

go基础(二) for循环

作者: 宋song一 | 来源:发表于2018-11-17 23:26 被阅读0次

    一.逻辑运算符(唯一)

    &&,短路与
    ||,短路或
    !,非
    逻辑与&&运算优先级高于逻辑或||

    二.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循环格式

    1. 一般格式
      for init;condition;post{}
      2.条件判断式
      for condition{}
      3.无限循环式 ,相当于java的while(true){}
      for {;}
      4.range格式,一般用于迭代循环(遍历).有两个返回值
      for key,value:=range Map{}

    for嵌套循环外层的跳出可使用break label(label可定义在需要跳出的地方)

    相关文章

      网友评论

          本文标题:go基础(二) for循环

          本文链接:https://www.haomeiwen.com/subject/yavifqtx.html