Go 入門

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

[box class="blue_box" title="☑本記事の内容"]

  • if文
  • for文

[/box]
参考資料:現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
[box class="glay_box" title="Contents"]

  1. if文
  2. for文

[/box]

if文

[box class="yellow_box" title="✔if文の目次"]

[/box]

基本的なこと

[box class="glay_box"]

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

[/box]

package main

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

[box class="glay_box"]

  • elseを使うことでそれ以外と指定できる

[/box]

package main

import (
	"fmt"
)

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

[box class="glay_box"]

  • else ifを使用することで他の条件を追加出来る

[/box]

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

[box class="glay_box"]

  • if文の場合、上に書いている処理が優先される
  • 下記の例ように6の場合は2,3どちらでも割り切れるが先に書いている2が優先

[/box]

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の使い方

[box class="glay_box"]

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

[/box]

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文

[box class="glay_box"]

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

[/box]

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

[box class="glay_box"]

  • 変数とif文を1行で書いた場合は変数を後から使用できないので注意

[/box]

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文

[box class="yellow_box" title="✔for文の目次"]

[/box]

基本的なこと

[box class="glay_box"]

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

[/box]

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

[box class="glay_box"]

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

[/box]

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

[box class="glay_box"]

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

[/box]

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の省略

[box class="glay_box"]

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

[/box]

package main

import (
	"fmt"
)

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

無限ループ

[box class="glay_box"]

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

[/box]

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言語入門⑥へ

目次

-Go, 入門