Go言語の基本四則演算の実装例を解説
Go言語での四則演算は、加算、減算、乗算、除算をシンプルに扱える操作です。
例えば、
この記事では、実際のコード例を交えながら解説します。
四則演算の基本構文
加算
基本的な構文例
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言語の四則演算の基本構文と実装例をコードと共に解説しました。
演算子の優先順位、括弧の利用、データ型の特性や注意点など、基本的な計算の動作や実装に必要な知識を整理しています。
ぜひ、実際にコードを動かして理解を深めてみてください。