Go言語入門⑦ ~if文・for文~

☑本記事の内容
  • if文
  • for文
参考資料:現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
Contents

if文

基本的なこと

  • if文を使うことで条件の指定が出来る
package main

import (
	"fmt"
)
func main() {
	s := 4
	if s%2 == 0 {
		fmt.Println("by 2")
	}
}
(結果)
by 2
  • elseを使うことでそれ以外と指定できる
package main

import (
	"fmt"
)

func main() {
    s := 5
	if s%2 == 0 {
		fmt.Println("by 2")
	} else {
		fmt.Println("else")
	}
}
(結果)
else
  • else ifを使用することで他の条件を追加出来る
package main

import (
	"fmt"
)

func main() {
	s := 9
	if s%2 == 0 {
		fmt.Println("by 2")
	} else if s%3 == 0 {
		fmt.Println("by 3")
	} else {
		fmt.Println("else")
	}
}
(結果)
by 3
  • if文の場合、上に書いている処理が優先される
  • 下記の例ように6の場合は2,3どちらでも割り切れるが先に書いている2が優先
package main

import (
	"fmt"
)

func main() {
	s := 6
	if s%2 == 0 {
		fmt.Println("by 2")
	} else if s%3 == 0 {
		fmt.Println("by 3")
	} else {
		fmt.Println("else")
	}
}
(結果)
by 2

and,orの使い方

  • andは&&、orは||で表せる
package main

import (
	"fmt"
)

func main() {
	x, y := 10, 20
	v, w := 20, 30
	if x == 10 && y == 20 {
		fmt.Println("and1")
	}

	fmt.Println("==========")

	if v == 20 && w == 20 {
		fmt.Println("and2")
	}

	fmt.Println("==========")

	if x == 10 || y == 10 {
		fmt.Println("or1")
	}

	fmt.Println("==========")

	if v == 30 || w == 20 {
		fmt.Println("or2")
	}
}
(結果)
and1
==========
==========
or1
==========

関数を用いたif文

  • 関数を用いてのif文も使用できる
  • 変数とif文を1行で書くことも可能
package main

import (
	"fmt"
)

func by2(num int) string {
	if num%2 == 0 {
		return "ok"
	} else {
		return "no"
	}
}

func main() {
	result := by2(10)
	if result == "ok" {
		fmt.Println("great")
	}

	if result2 := by2(10); result2 == "ok" {
		fmt.Println("great 2")
	}
}
(結果)
great
great 2
  • 変数とif文を1行で書いた場合は変数を後から使用できないので注意
package main

import (
	"fmt"
)

func by2(num int) string {
	if num%2 == 0 {
		return "ok"
	} else {
		return "no"
	}
}

func main() {
	result := by2(10)
	if result == "ok" {
		fmt.Println("great")
	}
	fmt.Println(result)
}
(結果)
great
ok
package main

import (
	"fmt"
)

func by2(num int) string {
	if num%2 == 0 {
		return "ok"
	} else {
		return "no"
	}
}

func main() {
	if result2 := by2(10); result2 == "ok" {
		fmt.Println("great 2")
	}
	fmt.Println(result2)
}
(結果)エラー表示
Build process exiting with code: 2 signal: null

for文

基本的なこと

  • forは繰り返しのこと
  • 指定した条件になるまで繰り返される
package main

import (
	"fmt"
)

func main() {
	for i := 0; i < 10; i++ {
		fmt.Println(i)
	}
}
(結果)
0
1
2
3
4
5
6
7
8
9

continue

  • continueを使うことでそれより後に書かれている処理をスキップする
package main

import (
	"fmt"
)

func main() {
	for i := 0; i < 10; i++ {
		if i == 3 {
			fmt.Println("continue")
			continue
		}
		fmt.Println(i)
	}
}
(結果)
0
1
2
continue
4
5
6
7
8
9

break

  • breakを使うことでfor文を終了させる
package main

import (
	"fmt"
)

func main() {
	for i := 0; i < 10; i++ {
		if i == 3 {
			fmt.Println("continue")
			continue
		}
		if i > 5 {
			fmt.Println("break")
			break
		}
		fmt.Println(i)
	}
}
(結果)
0
1
2
continue
4
5
break

forの省略

  • 変数と処理に関して省略することも出来る
  • 省略した場合は別の場所で変数などを書く必要がある
package main

import (
	"fmt"
)

func main() {
	sum := 1
	for sum < 10 {
		sum += sum
		fmt.Println(sum)
	}
	fmt.Println(sum)
}
(結果)
2
4
8
16
16

無限ループ

  • 終了条件を書かないと無限ループとなる
  • 無限ループになった場合は強制終了する
package main

import (
	"fmt"
)

func main() {
	for {
		fmt.Println("hello")
	}
}
(結果)
hello
hello
hello
hello
hello
hello
hello
.
.
.
Process exiting with code: 1 signal: false

Go言語入門⑧へ ≫

≪ Go言語入門⑥へ

目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUT US
サカイザ
機械設計→技術営業→SEと転職し、
現在フリーランスエンジニア
北海道出身東京在住
現在、Go案件を受注中
扱えるスキルGo,GCP,Java,AWS,SQL,Python,PHP,etc...
合同会社エンブリオ 代表社員