第4章 基本文法
Go言語には様々な演算子があり、これらは数値の計算、論理演算、比較などに使用されます。以下に、Go言語の主な演算子の種類と具体的な使用例を示します。
算術演算子
これらは数値の加算、減算、乗算、除算などに使用されます。
a := 10
b := 3
fmt.Println(a + b) // 加算: 13
fmt.Println(a - b) // 減算: 7
fmt.Println(a * b) // 乗算: 30
fmt.Println(a / b) // 除算: 3
fmt.Println(a % b) // 剰余: 1
代入演算子
これらは代入と他の操作を組み合わせます。
a := 10
a += 5 // 加算代入 a = a + 5
fmt.Println(a) // 出力: 15
a -= 3 // 減算代入 a = a - 3
fmt.Println(a) // 出力: 7
a *= 2 // 乗算代入 a = a * 2
fmt.Println(a) // 出力: 20
a *= 5 // 除算代入 a = a / 5
fmt.Println(a) // 出力: 2
a %= 3 // 剰余代入 a = a % 3
fmt.Println(a) // 出力: 1
比較演算子
これらは値の比較に使用され、ブール値(trueまたはfalse)を返します。
x := 5
y := 10
fmt.Println(x == y) // false
fmt.Println(x != y) // true
fmt.Println(x > y) // false
fmt.Println(x < y) // true
fmt.Println(x >= 5) // true
fmt.Println(y <= 10) // true
論理演算子
これらはブール値の論理的な演算に使用されます。
a := true
b := false
fmt.Println(a && b) // false
fmt.Println(a || b) // true
fmt.Println(!a) // false
ビット演算子
これらは整数のビット単位の演算に使用されます。
x := 6 // 0110 in binary
y := 10 // 1010 in binary
fmt.Println(x & y) // 2 (0010)
fmt.Println(x | y) // 14 (1110)
fmt.Println(x ^ y) // 12 (1100)
fmt.Println(x << 1) // 12 (1100)
fmt.Println(y >> 1) // 5 (0101)
インクリメントとデクリメント演算子
a := 10
a++ // a = a + 1
fmt.Println(a) // 出力: 11
b := 10
b-- // b = b - 1
fmt.Println(b) // 出力: 9
アドレス演算子
x := 20
p := &x // pはxのアドレス
fmt.Println(*p) // pの指すアドレスの値(20)
*p = 25 // pの指すアドレスに新しい値を代入
fmt.Println(x) // xの値は25に更新される
チャネル演算子
ch := make(chan int)
// チャネルへの送信
go func() {
ch <- 123
}()
// チャネルからの受信
val := <-ch
fmt.Println(val) // 出力: 123
短絡評価
a, b := true, false
if a && b {
fmt.Println("この行は実行されない")
}
if a || b {
fmt.Println("この行は実行される")
}
練習問題1.
2つの整数aとbが与えられたとき、以下の計算を行うGoプログラムを書いてください。
- aとbの和
- aからbを引いた差
- aとbの積
- aをbで割った商
- aをbで割った余り
a := 15
b := 4
// ここにコードを書く
練習問題2.
整数xが与えられたとき、xが10以上かつ20以下であるかどうかを判定するGoプログラムを書いてください。結果はブール値(trueまたはfalse)で表示します。
x := 15
// ここにコードを書く
練習問題3.
整数aが与えられたとき、以下のビット演算を行うGoプログラムを書いてください。
- aのビットを左に2ビットシフトする
- aのビットを右に1ビットシフトする
- aとbのビットごとのAND演算
- aとbのビットごとのOR演算
- aとbのビットごとのXOR演算
a := 12 // 1100 in binary
b := 5 // 0101 in binary
// ここにコードを書く