Go言語の演算子一覧と使い方!算術・比較・論理演算子をわかりやすく解説
生徒
「Go言語で計算をするときには、どんな書き方をするんですか?」
先生
「Go言語では『演算子(えんざんし)』という記号を使って、足し算や引き算、条件のチェックなどができます。」
生徒
「演算子って難しそうですね……」
先生
「大丈夫。中学校で習うような記号ばかりだから、安心して。ひとつずつ、使い方を確認していきましょう!」
1. 演算子とは?
演算子とは、値と値の間に置いて、計算したり条件を判断したりするための記号です。プログラミングでは、数字を足したり比べたり、「正しいかどうか」をチェックする場面で必ず登場します。
たとえば、日常生活でも「10+5」や「AはBより大きい?」のように考えますが、Go言語ではそれを記号で表現します。足し算には+、引き算には-といった具合に、中学校で学んだ記号がそのまま使われるので、初心者でも理解しやすいのが特徴です。
Go言語でよく使う演算子は、大きく次の3種類に分けられます:
- 算術演算子:数値を計算する(+ - * / %)
- 比較演算子:値を比べる(== != > < >= <=)
- 論理演算子:条件を組み合わせる(&& || !)
まずは一番シンプルな例として、「数字を足す」処理を見てみましょう。演算子は、このように値と値の間に書きます。
package main
import "fmt"
func main() {
result := 10 + 5
fmt.Println(result)
}
この例では、+が演算子です。10と5を足した結果がresultに入り、画面に表示されます。演算子は、Go言語で処理を書くうえでの基本中の基本なので、まずは「計算や比較に使う記号」と覚えておきましょう。
2. 算術演算子の使い方
算術演算子は、数字を計算するときに使う記号です。足し算・引き算・掛け算・割り算のような基本の計算を、Go言語では演算子で書きます。電卓で「10 + 3」と打つ感覚に近いので、プログラミング未経験でも入りやすい部分です。
よく使う算術演算子は次のとおりです。
+:足し算(合計を出す)-:引き算(差を出す)*:掛け算(倍にする)/:割り算(割った結果)%:割ったあとの余り(何回割れて、いくつ残るか)
a := 10
b := 3
fmt.Println(a + b) // 足し算
fmt.Println(a - b) // 引き算
fmt.Println(a * b) // 掛け算
fmt.Println(a / b) // 割り算(整数)
fmt.Println(a % b) // 余り
もう少し生活に近い例として、「お菓子を買う」計算をしてみましょう。単価と個数を掛け算し、手持ちのお金から引き算して、最後に余り(%)で「何個ずつ配ると余るか」も確認できます。
package main
import "fmt"
func main() {
money := 1000
price := 120
count := 3
total := price * count
change := money - total
fmt.Println("合計金額:", total, "円")
fmt.Println("おつり:", change, "円")
fmt.Println("7個ずつ配ると余る数:", count%7)
}
*で合計金額を出し、-でおつりを計算しています。%は「割り切れないときの残り」を知りたい場面で便利です。
なお、割り算は整数どうしだと、結果も整数になります(小数点以下は切り捨てられます)。たとえば10 / 3は3になります。
3. 比較演算子の使い方
比較演算子は、2つの値を比べて、同じかどうか・どちらが大きいかを判断するための記号です。結果は必ずtrueかfalseになり、「条件に当てはまるかどうか」をはっきりさせたいときに使います。
たとえば「テストの点数が合格ライン以上か」「年齢が20歳以上か」のようなチェックは、比較演算子が得意な場面です。数字だけでなく、文字列で「同じかどうか」を確かめるときにも使われます。
==:等しい(同じ)!=:等しくない(違う)>:大きい(より上)<:小さい(より下)>=:以上(同じか、それより大きい)<=:以下(同じか、それより小さい)
x := 5
y := 10
fmt.Println(x == y) // false
fmt.Println(x != y) // true
fmt.Println(x < y) // true
fmt.Println(x >= y) // false
もう少しイメージしやすい例として、「合格ラインを超えているか」を比較してみましょう。点数が基準以上ならtrue、足りなければfalseになります。
package main
import "fmt"
func main() {
score := 72
passLine := 70
fmt.Println(score >= passLine) // true(合格)
fmt.Println(score == passLine) // false(同点ではない)
fmt.Println(score != passLine) // true(違う)
}
このように比較演算子を使うと、「条件に当てはまるか」をすぐに判断できます。結果がtrueかfalseになる点がポイントで、Go言語で条件分岐を作るときの土台になります。
これらの演算子は、trueまたはfalseという結果を返します。これは「本当かどうか」を意味します。
4. 論理演算子の使い方
論理演算子は、複数の条件をまとめて判断したいときに使う記号です。「AもBも満たしているか」「どちらか一方でも当てはまるか」といった、人が普段考えている判断を、そのままコードで表現できます。
たとえば「ログイン済み かつ 管理者である」「雨が降っている または 風が強い」のように、条件が1つでは足りない場面で活躍します。比較演算子の結果(true / false)を組み合わせるイメージで使うと理解しやすいです。
&&(AND):両方がtrueのときだけtrue||(OR):どちらか一方でもtrueならtrue!(NOT):結果を反転する(true→false)
a := true
b := false
fmt.Println(a && b) // false
fmt.Println(a || b) // true
fmt.Println(!a) // false
もう少し実際の場面を想定して、「年齢」と「会員かどうか」で条件を判断してみましょう。両方を満たしている場合だけ、trueになります。
package main
import "fmt"
func main() {
age := 22
isMember := true
fmt.Println(age >= 20 && isMember) // true
fmt.Println(age < 20 || isMember) // true
fmt.Println(!isMember) // false
}
&&は「どちらもOKか」、||は「どちらかOKか」を確認する演算子です。論理演算子を使いこなせると、条件分岐が自然な文章のように書けるようになります。
このように、論理演算子は複数の条件を組み合わせて判断したい場面で欠かせない存在です。
5. よくあるエラーと注意点
演算子を使うときに初心者がよく間違えるポイントも紹介しておきます。
- 代入と比較の違い:
=は代入、==は比較なので混同しないこと - 整数どうしの割り算:小数点以下は切り捨てられる
- 論理演算子の優先順位:
!は優先度が高く、&&より先に処理される
6. 代入演算子(= と += など)の使い方
Go言語では、計算した結果を変数に入れるときに代入演算子を使います。基本は=ですが、「足してから入れる」「引いてから入れる」のように、計算と代入をまとめて書ける演算子もよく使われます。
=:右側の値を左側に入れる+=:足した結果を入れる(x = x + 1の短縮)-=:引いた結果を入れる*=:掛けた結果を入れる/=:割った結果を入れる
たとえば「ポイントを加算する」ような処理は、+=を使うとスッキリ書けます。
package main
import "fmt"
func main() {
point := 10
point += 5 // 10 + 5 の結果を point に入れる
point -= 3 // そこから 3 引く
fmt.Println("現在のポイント:", point)
}
+=や-=は「更新する変数」によく登場します。短く書けるだけでなく、意図が伝わりやすいのもメリットです。
7. インクリメント・デクリメントの書き方
「1増やす」「1減らす」は、プログラムでとてもよく出てくる操作です。Go言語では、以前はi++やi--のような書き方もありましたが、現在は基本的に+= 1や-= 1で書くのが主流です。
カウントを増やす、回数を数える、合計を積み上げるといった場面で使われます。
たとえば「ボタンを押した回数」を数えるイメージで、カウントを1ずつ増やしてみましょう。
package main
import "fmt"
func main() {
count := 0
count += 1
count += 1
count += 1
fmt.Println("押した回数:", count)
}
count += 1は「countを1増やす」という意味です。プログラムではこのような小さな更新が積み重なって動くので、早めに慣れておくと安心です。
8. 演算子の優先順位とカッコの使い方
演算子には「どれから先に計算されるか」という優先順位があります。たとえば掛け算*は足し算+より先に計算されるため、同じ式でも順番を意識しないと結果が変わることがあります。
初心者のうちは、迷ったらカッコ()を使って計算の順番をはっきりさせるのがおすすめです。読みやすさも上がり、間違いも減らせます。
同じ数字でも、カッコがあるかないかで結果が変わる例を見てみましょう。
package main
import "fmt"
func main() {
a := 10 + 2*3
b := (10 + 2) * 3
fmt.Println("カッコなし:", a) // 10 + (2*3) = 16
fmt.Println("カッコあり:", b) // (10+2) * 3 = 36
}
このように、*が先に計算されるため、カッコなしは16になります。計算の意図を明確にしたいときは、カッコを使って「どこを先に計算するか」を見える形にすると安心です。
まとめ
Go言語の演算子は、プログラムを書く上で欠かせない大切な要素です。とくに算術演算子、比較演算子、論理演算子は、どんなアプリケーションでも必ず使われるため、しっかり理解しておくことでプログラム全体の動作を正確に把握できるようになります。算術演算子では数値の計算、比較演算子では値どうしの比較、論理演算子では複数の条件をまとめて判断することができ、それぞれが役割を持って連携することで、より複雑な処理も自然と書けるようになります。 また、演算子を適切に選ぶことは、プログラムの正確性だけでなく読みやすさにも直結します。「どのような条件で判断しているのか」「どのような計算をしているのか」が明確に見えるコードは、後から見返したときの理解がしやすく、ミスも減らせるので、初心者が最初に身につけるべき重要な基礎です。演算子はシンプルに見えて奥が深いので、実際に手を動かしながら確実に身につけていきましょう。
さらに、論理演算子を組み合わせることで、複雑な条件を簡潔に表現できるようになります。たとえば「年齢が20以上で、かつ学生である」など、複数の要素をまとめて判断する場面では&&や||の理解が不可欠です。こうした条件式はプログラムの分岐処理やバリデーションなどで頻繁に使われ、演算子の使い方ひとつでコードの読みやすさが大きく変わるため、慣れるほどに開発効率も向上していきます。
演算子を組み合わせたサンプルコード
ここでは、算術・比較・論理演算子を組み合わせたサンプルを紹介します。実際に動かしてみると、演算子の働きがよりよく理解できます。
package main
import "fmt"
func main() {
score := 85
age := 20
fmt.Println("合計点の計算:", score + 15)
fmt.Println("点数が100以上か?:", score >= 100)
passed := score >= 80
isAdult := age >= 18
fmt.Println("合格条件を満たすか?:", passed && isAdult)
if passed && isAdult {
fmt.Println("おめでとうございます!条件を満たしました。")
} else {
fmt.Println("もう少しがんばりましょう。")
}
}
このプログラムでは、点数の計算に算術演算子を、条件のチェックに比較演算子を、さらに複数条件をまとめるために論理演算子を使っています。日常的な処理の中でも自然と使われる演算子なので、こうした小さなサンプルを積み重ねて慣れていきましょう。
生徒
「演算子って難しそうだと思っていましたが、意味がわかると意外とシンプルなんですね!」
先生
「そうでしょう。記号の種類と働きを覚えてしまえば、どんどん自然に使えるようになりますよ。」
生徒
「特に、比較演算子と論理演算子の組み合わせがとても便利だと感じました。条件をまとめて判断できるのは強力ですね。」
先生
「ええ、実務でも頻繁に使われる部分なので、身につけておくととても役に立ちますよ。これから条件分岐や繰り返し処理を学ぶときにも役立ちます。」
生徒
「今日学んだ内容をしっかり復習して、演算子の使い方をもっと慣れていきたいです!」
この記事を読んだ人からの質問
プログラミング初心者からのよくある疑問/質問を解決します
Go言語の算術演算子でよく使う記号の意味が覚えられません。Go言語の足し算や引き算、掛け算や割り算の基本的な使い方を簡単に理解するコツはありますか?
Go言語の算術演算子は中学校で習う記号とほぼ同じなので、足し算のプラス、引き算のマイナス、掛け算のアスタリスク、割り算のスラッシュ、余りのパーセント記号をシンプルに覚えるのがポイントです。実際に小さな数値で試してみると、Go言語の計算方法にすぐ慣れます。
【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導
「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。
本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。
具体的な開発内容と環境
【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。
【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。
この60分で得られる3つの理解
「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。
データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。
ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。
※本講座は、将来的にバックエンドエンジニアやクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。
初めてのGo言語を一緒に学びましょう!