Go言語の算術演算子入門!基本から使い方まで徹底解説

2025年4月16日水曜日

Go言語

この記事では、Go言語の演算子、特に算術演算子について、分かりやすく解説していきます。

Go言語で足し算や引き算などの計算をどう書けばいいのか、どんな種類があるのか、気になりますよね。

基本的な計算から、ちょっとした注意点まで、サンプルコードを動かしながら楽しく学んでいきましょう。

この記事で学べること

  • 算術演算子ってそもそも何なのか
  • Go言語で使える算術演算子の種類
  • それぞれの算術演算子の使い方(サンプルコード付き!)
  • 計算するときに気をつけたいポイント

Go言語の算術演算子とは?

プログラミングをしていると、数値を足したり引いたり、掛けたり割ったり…といった計算がしたくなりますよね。

そんな時に使うのが演算子と呼ばれる特別な記号です。
中でも、足し算(+)や引き算(-)のような、おなじみの計算に使う記号のことを算術演算子と呼びます。

Go言語でプログラムを書く上で、数値の計算は基本中の基本。

算術演算子をしっかり理解しておくことが、Go言語マスターへの第一歩ですよ!
難しく考えず、「計算するためのマーク」くらいの気持ちで読み進めてくださいね。

Go言語で使える算術演算子の種類一覧

Go言語には、基本的な計算をするための算術演算子が用意されています。
まずは、どんなものがあるのか見てみましょう。

  • + (プラス) 足し算(加算)に使います。
  • - (マイナス) 引き算(減算)に使います。
  • * (アスタリスク) 掛け算(乗算)に使います。数学の×とは違う記号なので注意!
  • / (スラッシュ) 割り算(除算)に使います。
  • % (パーセント) 割り算の余り(剰余)を求めるのに使います。

どうでしょう?ほとんど見慣れた記号じゃないでしょうか。
*%だけ、ちょっとプログラミングっぽい感じがしますね。

それぞれの詳しい使い方を、順番に見ていきましょう!

【基本】Go言語の算術演算子の書き方ルール

算術演算子を使うときの基本的な書き方を見てみましょう。

だいたいは、計算したい値の間に演算子を挟むだけです。とってもシンプル!
例えば、10 と 5 を足し算した結果を `result` という名前の箱(変数)に入れたい場合は、こんな風に書きます。

package main

import "fmt"

func main() {
  // result という変数に 10 + 5 の計算結果を入れる
  result := 10 + 5 
  fmt.Println(result) // result の中身を表示する
}

実行すると、ちゃんと 15 と表示されるはずです。

15

ポイントは、= の右側にある 10 + 5 が先に計算されて、その結果(15)が := によって `result` という変数に代入される点です。

演算子の左右には、見やすくするためにスペースを入れるのが一般的ですよ。(必須ではないですが、読みやすいコードを書くのはとっても良い習慣です!)

Go言語の算術演算子の使い方:加算(+)

まずは足し算、+ 演算子です。
これは一番イメージしやすいかもしれませんね。数値同士を足し合わせます。

整数同士の足し算

package main

import "fmt"

func main() {
  x := 100
  y := 50
  sum := x + y // x と y を足し算
  fmt.Println("100 + 50 =", sum)
}

実行結果

100 + 50 = 150

小数点を含む数(浮動小数点数)同士の足し算

package main

import "fmt"

func main() {
  a := 3.14
  b := 2.71
  result := a + b // a と b を足し算
  fmt.Println("3.14 + 2.71 =", result) 
}

実行結果

3.14 + 2.71 = 5.85

こんな感じで、整数でも小数点があっても、+ を使えば足し算ができます。

Go言語の算術演算子の使い方:減算(-)

次は引き算、- 演算子です。
これも簡単ですね。左の値から右の値を引きます。

整数同士の引き算

package main

import "fmt"

func main() {
  x := 100
  y := 30
  difference := x - y // x から y を引き算
  fmt.Println("100 - 30 =", difference)

  // 結果がマイナスになる場合
  a := 5
  b := 10
  result := a - b
  fmt.Println("5 - 10 =", result)
}

実行結果

100 - 30 = 70
5 - 10 = -5

小数点を含む数(浮動小数点数)同士の引き算

package main

import "fmt"

func main() {
  a := 10.5
  b := 2.1
  result := a - b // a から b を引き算
  fmt.Println("10.5 - 2.1 =", result)
}

実行結果

10.5 - 2.1 = 8.4

もちろん、計算結果がマイナスになることもありますよ。

Go言語の算術演算子の使い方:乗算(*)

掛け算には * (アスタリスク) を使います。
数学で使う × ではないので、間違えないようにしましょう!

整数同士の掛け算

package main

import "fmt"

func main() {
  x := 7
  y := 8
  product := x * y // x と y を掛け算
  fmt.Println("7 * 8 =", product)
}

実行結果

7 * 8 = 56

小数点を含む数(浮動小数点数)同士の掛け算

package main

import "fmt"

func main() {
  a := 2.5
  b := 4.0
  result := a * b // a と b を掛け算
  fmt.Println("2.5 * 4.0 =", result)
}

実行結果

2.5 * 4.0 = 10

コンピューターの世界では、掛け算の記号は * だと覚えておきましょう。

Go言語の算術演算子の使い方:除算(/)

割り算には / (スラッシュ) を使います。
これも数学の ÷ とは違いますね。

整数同士の割り算

package main

import "fmt"

func main() {
  x := 10
  y := 2
  quotient1 := x / y // x を y で割り算
  fmt.Println("10 / 2 =", quotient1)

  a := 10
  b := 4 // 割り切れない場合
  quotient2 := a / b
  fmt.Println("10 / 4 =", quotient2, "←あれ?")
}

実行結果

10 / 2 = 5
10 / 4 = 2 ←あれ?

おっと? `10 / 4` の結果が `2.5` ではなく `2` になりましたね。

実は、整数同士の割り算 `/` は、結果も整数になり、小数点以下は切り捨てられます
これはGo言語の(というか多くのプログラミング言語の)仕様なんです。最初はちょっと戸惑うかもしれません。

もし小数点以下も計算したい場合は、小数点を含む数(浮動小数点数)を使う必要があります。

小数点を含む数(浮動小数点数)同士の割り算

package main

import "fmt"

func main() {
  a := 10.0 // .0 をつけて浮動小数点数にする
  b := 4.0 // こちらも
  result := a / b // a を b で割り算
  fmt.Println("10.0 / 4.0 =", result)
}

実行結果

10.0 / 4.0 = 2.5

このように、値を `10.0` や `4.0` のように書くと、ちゃんと `2.5` という結果が得られます。

整数同士の割り算の結果については、後の「注意点」でもう少し詳しく説明しますね。

Go言語の算術演算子の使い方:剰余(%)

最後に紹介するのは % (パーセント) です。
これは剰余演算子と呼ばれ、割り算をしたときの「余り」を求めるために使います。

例えば、10 % 3 は、10を3で割ったときの余り、つまり 1 になります。(10 ÷ 3 = 3 余り 1)

package main

import "fmt"

func main() {
  x := 10
  y := 3
  remainder1 := x % y // 10 を 3 で割った余り
  fmt.Println("10 % 3 =", remainder1)

  a := 15
  b := 5 // 割り切れる場合
  remainder2 := a % b
  fmt.Println("15 % 5 =", remainder2)

  // どんな時に使うの? 例:偶数か奇数かの判定
  num1 := 7
  num2 := 8
  fmt.Println(num1, "を2で割った余りは", num1 % 2) // 余り1なら奇数
  fmt.Println(num2, "を2で割った余りは", num2 % 2) // 余り0なら偶数
}

実行結果

10 % 3 = 1
15 % 5 = 0
7 を2で割った余りは 1
8 を2で割った余りは 0

剰余演算子 % は、ある数が偶数か奇数か調べたり、何かの周期を計算したりするときによく使われます。

これも慣れるととても便利な演算子ですよ!

Go言語の算術演算子を使う上での注意点

さて、ここまでで基本的な算術演算子の使い方はバッチリだと思います!
でも、いくつか「おっと!」となりがちな注意点があるので、ここでしっかり押さえておきましょう。

【注意点1】整数同士の除算(`/`)は結果も整数になる

先ほどの除算 `/` のところでも少し触れましたが、Go言語では整数同士の割り算の結果は、必ず整数になります。小数点以下はバッサリ切り捨て!

package main

import "fmt"

func main() {
  a := 5
  b := 2
  resultInt := a / b // 整数 / 整数
  fmt.Println("整数同士の割り算:", resultInt) // 2.5 ではなく 2

  // 小数点以下も欲しい場合は、浮動小数点数に変換する
  resultFloat := float64(a) / float64(b) // aとbをfloat64型に変換
  fmt.Println("浮動小数点数での割り算:", resultFloat) // 2.5
}

実行結果

整数同士の割り算: 2
浮動小数点数での割り算: 2.5

「5 ÷ 2 = 2.5」のような計算結果が欲しいときは、計算する前に値を `float64()` などを使って浮動小数点数型に型変換してあげる必要があります。
「あれ、計算結果がおかしいな?」と思ったら、整数同士の割り算になっていないか確認してみてください。

【注意点2】ゼロ除算はエラー(panic)になる

数学の世界では、数を 0 で割ることはできませんよね。
Go言語でも同じで、プログラム中で 0 で割り算をしようとすると、`panic` というエラーが発生してプログラムが強制終了してしまいます

package main

import "fmt"

func main() {
  a := 10
  b := 0 
  
  // fmt.Println(a / b) // この行を実行すると panic が発生!
  
  // ゼロ除算を避けるには、事前にチェックする
  if b != 0 { // もし b が 0 でなければ
    fmt.Println(a / b) 
  } else {
    fmt.Println("0で割ることはできません!")
  }
}

上のコードのコメントアウトされた行 `// fmt.Println(a / b)` のコメントを外して実行すると、プログラムは途中で止まってしまいます。
`panic` はプログラムにとって予期せぬ事態が起きたことを示します。
ユーザーからの入力値などで割り算をする場合は、割る数が 0 にならないか、`if` 文などを使って事前にチェックする習慣をつけましょう。

【注意点3】異なる型同士の演算は基本的にできない

Go言語は、型の違いに厳しい言語です。
どういうことかというと、例えば整数型の値と浮動小数点数型の値を、そのまま直接足し算したりすることはできません。

package main

// import "fmt" // 使わないのでコメントアウト

func main() {
  a := 10      // 整数 (int)
  b := 5.5     // 浮動小数点数 (float64)

  // result := a + b // この行はコンパイルエラーになる!
  // fmt.Println(result) 
}

上のコードの `result := a + b` の行は、実行する前にコンパイルエラーになります。「`invalid operation: a + b (mismatched types int and float64)`」のようなメッセージが出て、型が違うから計算できないよ!とGo言語に怒られてしまうのです。
もし異なる型の値を計算したい場合は、注意点1で見たように、型変換を使って型を揃えてあげる必要があります。

package main

import "fmt"

func main() {
  a := 10      // 整数 (int)
  b := 5.5     // 浮動小数点数 (float64)

  // a を float64 型に変換してから足し算する
  result := float64(a) + b 
  fmt.Println("型変換して計算:", result) 
}

実行結果

型変換して計算: 15.5

このように、`float64(a)` と書くことで、整数 `a` を一時的に浮動小数点数として扱って計算できます。
型の違いはGo言語学習の初期につまずきやすいポイントなので、しっかり覚えておきましょう!

【まとめ】Go言語の算術演算子を理解して計算を使いこなそう!

お疲れ様でした!今回はGo言語の算術演算子について学びました。
ポイントを振り返ってみましょう。

  • 算術演算子は、足し算(+)、引き算(-)、掛け算(*)、割り算(/)、剰余(%)といった計算に使う記号。
  • 基本的な書き方は `値1 演算子 値2`。
  • 整数同士の割り算 `/` は結果も整数(小数点以下切り捨て)。
  • ゼロ除算は `panic` を引き起こすので避ける。
  • 異なる型同士の計算は、型変換が必要。

算術演算子は、Go言語でプログラミングをする上での本当に基本的な部分です。

今日の学びを土台にして、これから変数や条件分岐、繰り返し処理などを学んでいくと、できることの幅がぐっと広がりますよ!

最初は戸惑うこともあるかもしれませんが、実際にコードを書いて動かしてみるのが一番の近道です。

ぜひ、色々な計算を試してみてくださいね!

【関連記事】 Go言語とは?特徴・できること・将来性

このブログを検索

  • ()

自己紹介

自分の写真
リモートワークでエンジニア兼Webディレクターとして活動しています。プログラミングやAIなど、日々の業務や学びの中で得た知識や気づきをわかりやすく発信し、これからITスキルを身につけたい人にも役立つ情報をお届けします。 note → https://note.com/yurufuri X → https://x.com/mnao111

QooQ