[box class="blue_box" title="☑本記事の内容"]
- if文
- for文
[/box]
参考資料:現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
[box class="glay_box" title="Contents"]
[/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