Go--基础知识学习二

Go 流程控制语句 for 、if、else、switch、defer


// test001 project main.go
package main

import (
	"fmt"
	"time"
)

func main() {
	//Go 只有一种循环结构——`for` 循环。
	// for循环()不强制使用,但是{}必须有
	sum := 0
	//第一种循环形式
	for i := 0; i < 10; i++ {
		sum += i
	}
	fmt.Println(sum)

	//第二种循环形式  for 是go 的while 循环  类似于java的where(sum<100)
	for sum < 100 {
		sum += sum
	}
	fmt.Println(sum)

	//死循环
	//	for {

	//	}

	// if
	number := -1
	if number <= 0 {
		fmt.Println("小于0")
	}
	//if 可以在执行条件之前,执行简单的语句,由这个语句定义的变量的作用域仅在 if 范围之内。
	if v := 1; v > 0 {
		fmt.Println("大于0")
	} else {
		fmt.Println("小于0")
	}

	//switch 条件自上而下的执行,直到匹配成功停止
	switch name := "Go"; name {
	case "Java":
		fmt.Println("我是Java程序员")
	case "Go":
		fmt.Println("我是Go程序员")
	default:
		fmt.Println("开发毁一生,且行且珍惜")
	}

	t := time.Now()
	fmt.Println(t)
	//没有条件的 switch 同 `switch true` 一样。
	switch {
	case t.Hour() < 12:
		fmt.Println("Good morning!")
	case t.Hour() < 17:
		fmt.Println("Good afternoon.")
	default:
		fmt.Println("Good evening.")
	}

	//defer 语句会延迟函数的执行直到上层函数返回。延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用。
	defer fmt.Println("world")
	fmt.Println("hello,")
	//延迟的函数调用被压入一个栈中。当函数返回时, 会按照后进先出的顺序调用被延迟的函数调用。 输出结果 world  4  3  2  1  0
	for i := 0; i < 5; i++ {
		defer fmt.Println(i)
	}

}


运行结果如下


C:/Go/bin/go.exe build -i [C:/Go/src/test001]
成功: 进程退出代码 0.
C:/Go/src/test001/test001.exe  [C:/Go/src/test001]
45
180
小于0
大于0
我是Go程序员
2016-05-04 15:34:41.7925311 +0800 CST
Good afternoon.
hello,
4
3
2
1
0
world
成功: 进程退出代码 0.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值