HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。
制御構文とは、if文やfor文のことですが、プログラミングではどの言語においても、この2つの制御構文が超重要事項です。
そこで本記事では、制御構文の学習第5弾として、Goにおける制御構文をまとめます。
制御構文とは何かという説明については、以下の記事をご参照ください。

書き方を忘れてしまった方の復習としても、お役に立てていただければと思います。
Goの分岐
Goの分岐には、if文とswitch文があります。
if文
if文の基本的な構文は以下となります。
if 条件式A {
条件式Aが成立した場合の処理
} else if 条件式B {
条件Bが成立した場合の処理
} else {
条件式Aにも条件式Bにも成立しない場合の処理
}
条件A→条件Bという順番で判定します。
条件Aにも条件Bにも当てはまる場合には、条件Aが成立した場合の処理が行われます。
その場合、条件Bの判定(else if文の実行)は行われません。
次に例文です。(変数aとbには数値が入っている前提です)
if a < b {
fmt.Println("a より b の方が大きい")
} else if a > b {
fmt.Println("b より a の方が大きい")
} else {
fmt.Println("a と b は同一")
}
switch文
switch文の基本的な構文は以下となります。
switch 式 {
case 式A:
式Aに一致した場合の処理
case 式B:
式Bに一致した場合の処理
default:
式の評価結果が式Aとも式Bとも一致しない場合の処理
}
switchの式を指定しない方法もあります。指定しない場合は、case節の式の結果がtrueとなるものを一致とみなします。
次に例文です。(変数sには文字列が入っている前提です)
switch s {
case "Go":
fmt.Println(s) // 標準出力に「Go」と表示される
case "JavaScript":
fmt.Println(s) // 標準出力に「JavaScript」と表示される
default:
fmt.Println(s) // 標準出力に「Ruby」「Go」でない変数sに入っている文字列が表示される
}
Goの繰返し
Goの繰返しには、for文があります。
for文
Goのfor文は他の言語に比べて、柔軟性が高く作られています。
他の言語と同様に、初期化式、条件式、加算式を並べて書くこともできます。
条件式のみを指定することもできます。Goにはwhile文がありませんが、この条件式のみを指定することで、他の言語のwhile文と同等の処理を行うことができます。
また、初期化式、条件式、加算式のどれも指定しない方法もあります。その場合無限ループとならないようにbreak文でループを抜けるなどの対応が必要となります。
基本的な構文は以下のとおりです。
for 初期化式; 条件式; 加算式 {
繰返し実行する処理
}
初期化式、条件式の評価、for文内の繰返し処理、加算式の順に処理が実行されていきます。
例文は以下のとおりです。
// 初期化式、条件式、加算式を指定
for i := 0; i < 10; i++ {
fmt.Println(i)
}
// 条件式のみ指定
i := 0
for i < 10 {
fmt.Println(i)
i += 1
}
// 初期化式、条件式、加算式のどれも指定なし
i = 0
for {
if i >= 10 {
break
}
fmt.Println(i)
i += 1
}
Goはど言語にも馴染みのある書き方が多い
Goはシンプルでもありますが、他の言語と似ている部分が多く、馴染みやすいです。
それでいて、できることも豊富なので、Goならではの部分のところは、また別の機械にお伝えできたらと思います。
今回はGoの制御構文として分岐処理と繰返し処理をいくつか紹介しました。
お役に立てば幸いです。



コメント