この記事では、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言語とは?特徴・できること・将来性


0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。