ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

go基础笔记-程序流程控制

2020-07-24 09:33:36  阅读:249  来源: 互联网

标签:fmt 笔记 else Println 程序流程 && go main age


单分支控制
if 条件表达式 {
  执行代码块
}

案例:
package main

import (
    "fmt"
)

func main() {
    var age int = 19
    if age > 18 {
        fmt.Println("大于18")
    }
}


案例:声明两个float64型变量并赋值,判断如果第一个数大于10.0,并且第2个数小于20.0,就打印两个数之和。
package main

import (
    "fmt"
)

func main() {
    var n3 float64 = 11.0
    var n4 float64 = 17.0
    if n3 > 10.0 && n4 < 20.0 {
        fmt.Println("和=",(n3+n4))
    }
}


案例:判断一个年份是否是闰年,闰年的判断条件是符合下面二者之一:
(1)年份能被4整除,但不能被100整除;
(2)年份能被400整除。

package main

import (
    "fmt"
)

func main() {
    var year int = 2020
    if (year % 4 == 0 && year % 100 !=0 ) || year % 400 == 0{
        fmt.Println(year,"是闰年")
    }
}


双分支控制
if 条件表达式 {
  执行代码块1
} else {
  执行代码块2
}

案例:
package main

import (
    "fmt"
)

func main() {
    var age int = 17
    if age > 18 {
        fmt.Println("大于18")
    } else {
        fmt.Println("小于18")
    }
}


多分支控制
if 条件表达式 {
  执行代码块1
} else if {
  执行代码块2
} else {
  执行代码块3
}

案例:
package main

import (
    "fmt"
)

func main() {
    var score int = 99
    if score == 100 {
        fmt.Println("=100")
    } else if score > 80 && score <= 99 {
        fmt.Println(">80&&<=90")
    } else if score >=60 && score <= 80 {
        fmt.Println(">=60 && <=80")
    } else {
        fmt.Println("<=60")
    }
}

案例:下面的案例是错误的写法,因为只会输出 ">9" 
package main

import (
    "fmt"
)

func main() {
    var n int = 10
    if n >  9 {
        fmt.Println(">9")
    } else if n > 6 && n <= 9 {
        fmt.Println(">6&&<=9")
    } else if n >=3 && n <= 6 {
        fmt.Println(">=3 && <=6")
    } else {
        fmt.Println("<=3")
    }
}


嵌套分支基本语法

if 条件表达式 {
    if 条件表达式 {
    执行代码块1
    } else {
    执行代码块2
    }

}

案例:出票系统:根据淡旺季的月份和年龄,打印票价
4-10月 旺季:
  成人(18-60):60
  儿童(<18):半价
  老人(>60):1/3
淡季:
  成人:40
  其他:20

package main

import (
    "fmt"
)
 
func main() {
  var month byte
  var age byte
  var price float64 = 60.0
  
  fmt.Println("请输入月份")
  fmt.Scanln(&month)
  fmt.Println("请输入年龄")
  fmt.Scanln(&age)
 
  if month >=4 && month <=10 {
    if age > 60 {
      fmt.Printf("%v月 票价 %v 年龄 %v ",month,price / 3 ,age)
    } else if age >=18 {
      fmt.Printf("%v月 票价 %v 年龄 %v ",month,price,age)
    } else {
      fmt.Printf("%v月 票价 %v 年龄 %v ",month,price / 2,age)
    }
  } else {
    if age >=18 && age < 60 {
      fmt.Println("淡季成人票价40")
    } else {
      fmt.Println("淡季儿童和老人票价20")
    }
  }
}



switch语句用于基于不同条件执行不同动作,每一个case分支都是唯一的,从上到下逐一测试,直到匹配为止;


swith使用细节:
case后面是一个表达式(即:常量值、变量、一个有返回值的函数)
case后的各表达式的值的数据类型必须和swith表达式数据类型一致;
case后面可以带多个表达式,使用逗号间隔,比如case 表达式1,表达式2
case后面的表达式如果是常量值,即要求不能重复;
case后面不需要带break;
defaut语句不是必须的;
swith后面可以不带表达式,类似if else分支来使用;

swith后面也可以直接申明定义一个变量,分号结束,不推荐;

switch之fallthrough(穿透)也就是执行某个case后,还会再执行它接下来的一个case

Type switch :swich语句还可以被用于type-switch来判断某个Interface变量中实际指向的变量类型;


循环控制基本语法

  1)for 循环变量初始化;循环条件;循环变量迭代 {=
     循环操作
    }

  2)for 循环条件 {
       循环操作
      } 

  3)for {
     循环操作
     break
     }


for循环的使用细节:

(1)golang提供for-range方式,可以方便的遍历字符串和数组;(是按照字符来遍历的,而不是字节)
(2)利用for实现while和do while


(6)跳转语句goto

goto语句可以无条件地转移到程序中指定的行;
goto语句通常与条件语句配合使用。可用来实现条件转移,跳出循环体等功能;
在go程序设计中一般不主张使用goto语句,以避免造成程序流程的混乱;

(7)跳转控制语句return

表示跳出所在的方法或函数;

 

标签:fmt,笔记,else,Println,程序流程,&&,go,main,age
来源: https://www.cnblogs.com/liang545621/p/13370144.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有