数値

Go言語の基本四則演算の実装例を解説

Go言語での四則演算は、加算、減算、乗算、除算をシンプルに扱える操作です。

例えば、a+baba×ba/bなどの数式を用いることで、基本的な計算処理が実装できます。

この記事では、実際のコード例を交えながら解説します。

四則演算の基本構文

加算

基本的な構文例

Go言語では、加算は演算子「+」を用いて簡単に実装できます。

下記のコードは、2つの定数の加算を行い、その結果を出力する例です。

package main
import "fmt"
func main() {
	// 2つの値を加算する例
	sum := 10 + 5 // 10と5を加算
	fmt.Println("加算の結果:", sum)
}
加算の結果: 15

減算

基本的な構文例

減算も同様に、演算子「-」を使用して行います。

下記の例では、2つの値の減算結果を表示しています。

package main
import "fmt"
func main() {
	// 2つの値の減算例
	diff := 10 - 5 // 10から5を減算
	fmt.Println("減算の結果:", diff)
}
減算の結果: 5

乗算

基本的な構文例

乗算は演算子「*」を利用します。

以下のサンプルコードは、2つの値を乗算し、その結果を画面に表示する例です。

package main
import "fmt"
func main() {
	// 2つの値を乗算する例
	product := 10 * 5 // 10と5の乗算
	fmt.Println("乗算の結果:", product)
}
乗算の結果: 50

除算

整数型と浮動小数点型の違い

Go言語では、整数型同士の除算は整数の商が返され、浮動小数点型を使うとより正確な計算結果が得られます。

下記のコードは、整数型と浮動小数点型の除算結果の違いを示しています。

package main
import "fmt"
func main() {
	// 整数型による除算:小数点以下は切り捨てられる
	intDiv := 7 / 3
	fmt.Println("整数型除算の結果:", intDiv)
	// 浮動小数点型による除算:正確な計算結果を得る
	floatDiv := 7.0 / 3.0
	fmt.Println("浮動小数点型除算の結果:", floatDiv)
}
整数型除算の結果: 2
浮動小数点型除算の結果: 2.3333333333333335

ゼロ除算時の注意点

ゼロ除算は計算時にエラーとなるため注意が必要です。

整数型の場合、コンパイル時や実行時にエラーが発生します。

下記の例では、ゼロ除算が発生するコードをコメントとして記述していますので、実際に実行する際は注意してください。

package main
import "fmt"
func main() {
	// ゼロ除算の例
	// 以下のコードは実行するとpanicが発生するため、コメントアウトしています。
	// result := 10 / 0
	// fmt.Println("ゼロ除算の結果:", result)
	fmt.Println("ゼロ除算の例: 10を0で割ると実行時エラーとなります")
}
ゼロ除算の例: 10を0で割ると実行時エラーとなります

演算子の優先順位と括弧の利用

演算子の基本優先順位

計算結果に与える影響

Go言語では、乗算や除算が加算や減算よりも先に評価されます。

下記の例では、乗算が先に計算され、その結果に加算が適用されることを確認できます。

package main
import "fmt"
func main() {
	// 掛け算が足し算よりも優先される例
	result := 10 + 5 * 2 // 5*2=10が先に計算され、その後10+10=20となる
	fmt.Println("演算子の優先順位を考慮した計算結果:", result)
}
演算子の優先順位を考慮した計算結果: 20

括弧を用いた優先順位の明示

基本例と実用例

括弧を使用することで、演算の実行順序を明示的に変更することができます。

下記のコードは、括弧を利用して加算の結果を先に計算させ、その後に乗算を行った例です。

package main
import "fmt"
func main() {
	// 括弧を使用して計算順序を変更する例
	result := (10 + 5) * 2 // まず(10+5)=15を計算し、その後15*2=30となる
	fmt.Println("括弧を使用した計算結果:", result)
}
括弧を使用した計算結果: 30

Go言語での実装例

加減算の実装例

コード例と解説

加算と減算を組み合わせた実装例です。

2つの変数を利用して、加算と減算それぞれの結果を表示します。

package main
import "fmt"
func main() {
	// 2つの数値を定義
	a := 20 // 数値a
	b := 10 // 数値b
	// 加算の計算
	sum := a + b
	fmt.Println("加算の結果:", sum)
	// 減算の計算
	diff := a - b
	fmt.Println("減算の結果:", diff)
}
加算の結果: 30
減算の結果: 10

乗除算の実装例

コード例と解説

乗算と除算を実装する例です。

整数型による除算と、型変換を用いた浮動小数点型による除算の両方を示しています。

package main
import "fmt"
func main() {
	// 2つの数値を定義
	a := 15 // 数値a
	b := 5  // 数値b
	// 乗算の計算
	product := a * b
	fmt.Println("乗算の結果:", product)
	// 整数型による除算
	intDiv := a / b
	fmt.Println("整数型除算の結果:", intDiv)
	// 浮動小数点型による除算(正確な結果を得るために型変換)
	floatDiv := float64(a) / float64(b)
	fmt.Println("浮動小数点型除算の結果:", floatDiv)
}
乗算の結果: 75
整数型除算の結果: 3
浮動小数点型除算の結果: 3

データ型と演算結果の特性

整数型演算の注意点

型変換と切り捨ての挙動

整数型同士の演算では、割り算の結果が小数部分を切り捨てられる点に注意が必要です。

正確な結果が必要な場合は、浮動小数点数に型変換を行う必要があります。

package main
import "fmt"
func main() {
	// 整数型の数値を定義
	a := 7 // 数値a
	b := 3 // 数値b
	// 整数型の除算は小数点以下が切り捨てられる
	intDiv := a / b
	fmt.Println("整数型の除算結果(切り捨て):", intDiv)
	// 正確な計算結果を得るために型変換を実施
	floatDiv := float64(a) / float64(b)
	fmt.Println("型変換後の浮動小数点除算結果:", floatDiv)
}
整数型の除算結果(切り捨て): 2
型変換後の浮動小数点除算結果: 2.3333333333333335

浮動小数点数演算の注意点

丸め誤差と精度管理のポイント

浮動小数点数の演算では、丸め誤差が発生する場合があります。

下記の例は、0.1と0.2の加算により起こる丸め誤差を表示し、フォーマット指定子を使って結果を整形する方法を示しています。

package main
import "fmt"
func main() {
	// 浮動小数点数の値を定義
	a := 0.1
	b := 0.2
	// 加算の実行
	sum := a + b // 理論上は0.3となるが、丸め誤差によりわずかな差異が生じる
	fmt.Println("浮動小数点数の加算結果:", sum)
	// フォーマット指定子を利用して丸め誤差を補正して表示する例
	fmt.Printf("フォーマット指定子で表示: %.10f\n", sum)
}
浮動小数点数の加算結果: 0.30000000000000004
フォーマット指定子で表示: 0.3000000000

まとめ

この記事では、Go言語の四則演算の基本構文と実装例をコードと共に解説しました。

演算子の優先順位、括弧の利用、データ型の特性や注意点など、基本的な計算の動作や実装に必要な知識を整理しています。

ぜひ、実際にコードを動かして理解を深めてみてください。

関連記事

Back to top button
目次へ