create Golang project with condition statement

1, create new project “test6_condition”

$ cd ~/project
$ mkdir test6_condition
$ cd test6_condition
$ touch condition.go

2,add following lines in “condition.go”

package main

import (
	"fmt"
	"math"
)

func main() {
	// TEST 1, regular for loop
	forCase1()
	// TEST 2, no initial or post statement
	forCase2()
	// TEST 3, for loop works as while
	forCase3()
	// TEST 4, infinite loop
	forCase4()
	// TEST 5, if condition
	ifCase1(2.0, 3.0) //ifCase1(2.0, -3.0)
	// TEST 6, integrate for & if
	calculateSqrt(3.0)
	// TEST 7, switch case
	switchCase()
	// TEST 8, defer
	deferCase()
}

func forCase1() {
	var sum int = 0
	for i := 0; i < 7; i++ {
		sum = sum + i
		fmt.Println("i =", i, ",sum =", sum)
	}
}

func forCase2() {
	var sum int = 0
	for ; sum < 9; {
		sum = sum + 2
		fmt.Println("case 2, sum =", sum)
	}
}

func forCase3() {
	var sum int = 0
	for sum < 80 {
		sum = sum + 15
		fmt.Println("case 3, sum =", sum)
	}
}

func forCase4() {
	var sum int = 0
	for {
		sum = sum + 7
		fmt.Println("case 4, sum =", sum)
		if (sum > 30) {
			break
		}
	}
}

func ifCase1(a, b float64) {
	if r := math.Pow(a, b); r < 1.0 {
		fmt.Printf("pow(%f, %f) = %f < 1.0\n", a, b, r)
	} else {
		fmt.Printf("pow(%f, %f) = %f >= 1.0\n", a, b, r)
	}
}

func calculateSqrt(a float64) {
	var limit float64 = 10e-3
	var x1, x2 float64 = 10.0, 10.0
	var offset float64 = 0.0
	for {
		x2 = 0.5 * (x1 + a / x1)
		offset = math.Abs(x2*x2 - a)
		if offset < limit {
			fmt.Println("result of sqrt() =", x2, offset)
			break
		} else {
			fmt.Println("try", x2, "for sqrt()")
			x1 = x2
		}
	}
}

func switchCase() {
	var a int = 9
	switch {
	case (a %2 == 0):
		fmt.Println("switch case1 - 1")
	case (a % 3 ==0):
		fmt.Println("switch case1 - 2")
	default:
		fmt.Println("switch case1 - 3")
	}
}

func deferCase() {
	var n int = 0
	defer fmt.Println("defer case - 1", n)
	fmt.Println("case - 1", n)
	n = n + 1
	defer fmt.Println("defer case - 2", n)
	fmt.Println("case - 2", n)
	n = n + 1
	defer fmt.Println("defer case - 3", n)
	fmt.Println("case - 3", n)
	n = n + 1
}

3, run “condition.go”

$ go run condition.go

you should get result like this:

i = 0 ,sum = 0
i = 1 ,sum = 1
i = 2 ,sum = 3
i = 3 ,sum = 6
i = 4 ,sum = 10
i = 5 ,sum = 15
i = 6 ,sum = 21
case 2, sum = 2
case 2, sum = 4
case 2, sum = 6
case 2, sum = 8
case 2, sum = 10
case 3, sum = 15
case 3, sum = 30
case 3, sum = 45
case 3, sum = 60
case 3, sum = 75
case 3, sum = 90
case 4, sum = 7
case 4, sum = 14
case 4, sum = 21
case 4, sum = 28
case 4, sum = 35
pow(2.000000, 3.000000) = 8.000000 >= 1.0
try 5.15 for sqrt()
try 2.86626213592233 for sqrt()
try 1.956460731776899 for sqrt()
try 1.74492093914502 for sqrt()
result of sqrt() = 1.7320982711195376 0.0001644208152913329
switch case1 - 2
case - 1 0
case - 2 1
case - 3 2
defer case - 3 2
defer case - 2 1
defer case - 1 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值