【Go言語学習|初心者向け】Go言語で「あまり」を求める!算術演算子 %(剰余演算子)の基本と活用術

1. 導入:なぜ「%」演算子が必要なのか?

プログラミングをしていると、「数値を特定の範囲に収めたい」「偶数と奇数を判定したい」「一定回数ごとに処理を行いたい」といった場面によく遭遇します。これらを解決するために欠かせないのが、算術演算子のひとつである「剰余(じょうよ)演算子 %」です。今回は、Go言語における % の使い方と、初心者が知っておくべき注意点を解説します。

2. 基礎知識:剰余演算子とは?

剰余演算子 % は、割り算をした後の「あまり(余り)」を求めるための演算子です。例えば、「7 % 3」と書くと、7を3で割ったときのあまりである「1」が結果として返ります。

重要なポイント
整数専用:Go言語において、% は整数型(int型など)のみに適用可能です。浮動小数点型(float型)には使用できないというルールがあります。
符号の扱い:あまりの結果は、被除数(割られる数)の符号を引き継ぐという特性があります。

3. 実装/解決策:具体的な使い方

最も一般的な用途は「偶数・奇数の判定」です。数値を2で割ったときのあまりが0なら偶数、1なら奇数と判断できます。また、ループ処理の中で「3回に1回だけ特別な処理をする」といった制御にも非常に便利です。

4. サンプルプログラム

以下のコードをコピーして、ご自身の環境で実行してみてください。

package main

import "fmt"

func main() {
    // 1. 基本的なあまりの計算
    a := 10
    b := 3
    fmt.Printf("%d を %d で割ったあまりは %d です\n", a, b, a%b)

    // 2. 偶数・奇数の判定
    num := 7
    if num%2 == 0 {
        fmt.Println(num, "は偶数です")
    } else {
        fmt.Println(num, "は奇数です")
    }

    // 3. ループ内での活用(3回ごとにメッセージを表示)
    for i := 1; i <= 5; i++ {
        if i%3 == 0 {
            fmt.Printf("%d回目のループ:特別な処理を実行!\n", i)
        } else {
            fmt.Printf("%d回目のループ:通常処理\n", i)
        }
    }
}

5. 応用・注意点:現場で役立つポイント

ゼロ除算に注意
数学と同じく、0で割ることはできません(x % 0 は実行時にパニックを引き起こします)。ユーザーからの入力値を使って計算する場合は、必ず割る数が0でないことを確認するチェック処理を入れましょう。

負の数の挙動を確認しよう
Go言語で負の数に対して剰余演算を行うと、結果も負になることがあります(例:-7 % 3 は -1 になります)。もし常に正の数として結果を得たい場合は、条件分岐を使って調整する工夫が必要です。

% 演算子を使いこなすと、複雑な条件分岐をシンプルに書けるようになります。まずは「偶数・奇数判定」から試して、感覚を掴んでみてください!

コメント

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