美文网首页
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循环

    一.逻辑运算符(唯一) &&,短路与||,短路或!,非逻辑与&&运算优先级高于逻辑或|| 二.for循环嵌套 1....

  • Golang基础(二)——流程控制语句

    Golang基础——流程控制语句 @([07] golang)[Go总结] [TOC] for循环语句 go只有f...

  • Go基础笔记

    Go语言基础(一) 流程控制语句:for、if、else、switch、defer for Go只有一种循环结构:...

  • Go语言基础2 - 控制语句( if, for, switch

    概述 我们将用几节来学习Go语言基础,本文结构如下: 控制结构 Go不再使用 do 或 while 循环,只有一个...

  • GO基础2-循环

    循环 跳出循环:break continue goto

  • js常用数组遍历

    一、for循环类基础for循环 for in循环 for in循环 二、返回值相关forEach循环 find,m...

  • go基础(二)

    运算符 算数运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符ps:为防止发生混淆,go语法规定,+...

  • go 基础学习

    1 go 基础go 语法基础go 官方资料如果由C ,C++ 基础, 学习go 比较容易,本文学习go ,主要是为...

  • Go语言入坑

    GO语言基础 认识并安装GO语言开发环境 Go语言简介 Go语言是谷歌2009年发布的第二款开源编程语言 go语言...

  • Go语法基础-判断和循环

    条件语句 if if...else... if语句嵌套 switch switch 语句用于基于不同条件执行不同动...

网友评论

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

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