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の制御構文として分岐処理と繰返し処理をいくつか紹介しました。
お役に立てば幸いです。
コメント