この記事では、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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。