package main

import (
"io/ioutil"
"fmt"
) func grade(score int) string{
g:=""
switch {//可以省略掉switch中的判断
case score<0 || score>100:
panic(fmt.Sprintf(
"Wrong score:%d",score))
case score <60:
g="f"
case score <80:
g="C"
case score <90:
g="B"
case score <=100:
g="A"
}
return g
} func eval(a,b int, op string) int{
var result int
switch op{
case "+":
result = a+b
case "-":
result = a-b
case "*":
result = a*b
case "/":
result = a/b
default:
panic("unsupported operator:"+ op)
}
return result
} func main() {
const filename = "abc.txt"
//contents,err:= ioutil.ReadFile(filename)
//if err !=nil {
// fmt.Println(err)
//}else {
// fmt.Printf("%s\n",contents)
//}
//简便写法,if的条件里可以赋值,条件里赋值的变量作用域就在这个if语句里
if contents,err:= ioutil.ReadFile(filename);err !=nil{
fmt.Println(err)
}else {
fmt.Printf("%s\n",contents)
} fmt.Printf("%s\n",grade(99))
fmt.Println(eval(1,2,"*"))
}

  以上是条件语句

  if条件里可以定义变量

  switch不需要break,也可以直接switch多个条件

package main

import (
"fmt"
"strconv"
"os"
"bufio"
) func convertToBin(n int) string{
result :=""
for ;n > 0 ; n /= 2 {
lsb:=n % 2
result = strconv.Itoa(lsb) + result
}
return result
} func printFile(filename string){
file,err := os.Open(filename)
if err !=nil{
panic(err)
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
} func main() {
fmt.Println(
convertToBin(5),
convertToBin(128),
)
printFile("abc.txt")
}

  以上是循环语法

  for的条件里不需要括号,可以省略初始条件,结束条件,递增表达式(亦可以全部省略,为死循环)

  panic()当程序报错时,会停掉程序,打印出错误

最新文章

  1. 对CVE-2014-6271 [破壳漏洞] 的一次不太深入的跟踪
  2. Use filter in outlook2013
  3. Logback常用配置详解
  4. RAID 0+1
  5. 重新执笔,已是大三!Jekyll自定义主题开发
  6. Node.js事件循环
  7. Xcode 的正确打开方式——Debugging(转)
  8. android 栈方式退出
  9. JS - 删除确认
  10. Android中的动画具体解释系列【1】——逐帧动画
  11. 使用Xcode和Instruments调试解决iOS内存泄漏
  12. 爬虫:把廖雪峰的教程转换成 PDF 电子书
  13. java到底是引用传递还是值传递?
  14. Java笔记Spring(七)
  15. 《笨方法学Python》加分题20
  16. Ubuntu教程
  17. 用git,clone依赖的库
  18. 9个实用的Javascript代码高亮脚本
  19. 【Android】14.0 第14章 内部存储与外部SD卡存储&mdash;本章示例主界面
  20. &lt;算法导论&gt;高级数据结构--以我的角度看B树(Balanced-Tree)的建增删查

热门文章

  1. yum命令集
  2. CentOS配置网易163 yum源
  3. 谈谈JS中的高级函数
  4. caffemodel的读取与修改
  5. MxNet C++和python环境配置
  6. 初识C++模板元编程(Template Mega Programming)
  7. centos初始化安装
  8. Spring security 如何设置才能避免拦截到静态资源
  9. CentOS6.4安装辅助NIS的流程
  10. MySQL添加数据库的唯一索引的几种方式~