Goの制御構文を学ぶ【プログラミング初心者向け教材】

プログラミング

HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。

制御構文とは、if文やfor文のことですが、プログラミングではどの言語においても、この2つの制御構文が超重要事項です。

そこで本記事では、制御構文の学習第5弾として、Goにおける制御構文をまとめます。

制御構文とは何かという説明については、以下の記事をご参照ください。

JavaScriptの制御構文を学ぶ【プログラミング初心者向け教材】
HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。 本記事では、制御構文について簡単に解説し、JavaScriptにおける制御構文をまとめます。

書き方を忘れてしまった方の復習としても、お役に立てていただければと思います。

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の制御構文として分岐処理と繰返し処理をいくつか紹介しました。

お役に立てば幸いです。

コメント

タイトルとURLをコピーしました