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 になります)。もし常に正の数として結果を得たい場合は、条件分岐を使って調整する工夫が必要です。
% 演算子を使いこなすと、複雑な条件分岐をシンプルに書けるようになります。まずは「偶数・奇数判定」から試して、感覚を掴んでみてください!

コメント