ksg

ksg@software_engineer

Portfolio Blog

Go2026/07/13

【中学生でもわかる】Go言語入門②変数・型・if/forを覚えよう(基本文法編)

【中学生でもわかる】Go言語入門②変数・型・if/forを覚えよう(基本文法編)

前回のおさらい

前回は、Goをインストールして、Hello, World! という文字を画面に表示するところまでやりました。

今回は、プログラムの中で「データを扱う方法」と「処理の流れをコントロールする方法」を学びます。具体的には、

  • 変数(データに名前をつけて保存する箱)
  • 型(データの種類)
  • if文(条件によって処理を分ける)
  • for文(処理を繰り返す)
  • switch文(たくさんの選択肢から選ぶ)

の5つです。この5つを覚えると、簡単なプログラムはほとんど書けるようになります。

変数ってなに?

プログラムの中では、いろいろな「データ」を扱います。たとえば、名前、年齢、点数、金額などです。

こうしたデータを一時的に保存しておく場所のことを、変数(へんすう) と呼びます。変数は、「名前が書かれた箱」だとイメージするとわかりやすいです。

たとえば、「age」という名前の箱を用意して、その中に「14」という数字を入れておく、というイメージです。あとから箱の中身(値)を確認したり、別の値に入れ替えたりすることができます。

Goで変数を作るときは、次のように書きます。

var age int = 14

これを日本語に直すと、こんな感じです。

  • var → 「変数を作りますよ」という宣言(variableの略)
  • age → 箱の名前
  • int → 箱の種類(あとで説明する「型」です)
  • = 14 → 箱に「14」という値を入れる

もう少し短く書ける方法もあります。Goでは、:= という記号を使うと、var や型を省略して書けます。

age := 14

これは var age int = 14 とほぼ同じ意味になります。Goが「14という値なら、int型の箱だな」と自動で判断してくれるためです。実際のGoのコードでは、こちらの := の書き方がよく使われます。

型ってなに?

先ほど出てきた int という言葉について説明します。

箱にもいろいろな種類がありますよね。液体を入れる箱(コップ)、本を入れる箱(本棚)のように、入れるものに応じて適した箱の形が違います。

プログラミングにおける 型(かた) も同じです。「この箱には、どんな種類のデータが入るか」を決めるものです。Goでよく使う型には、次のようなものがあります。

説明

int

整数(小数点のない数字)

14, -5, 1000

float64

小数(小数点のある数字)

3.14, -0.5

string

文字列(文字のあつまり)

"こんにちは", "Go"

bool

真偽値(正しいか、正しくないか)

true, false

bool(ブール型)だけ少し馴染みがないかもしれません。これは「はい」か「いいえ」、「正しい」か「正しくない」だけを表す型です。テストの◯✕問題のようなものだとイメージしてください。true が◯、false が✕です。

Goは「型にとても厳格な言語」です。たとえば int 型の箱に、あとから string(文字列)を入れようとすると、エラーになります。

age := 14        // ageはint型
age = "14歳"      // エラー!int型の箱にstring型は入れられない

「なんでそんな厳しいルールがあるの?」と思うかもしれませんが、これはプログラムのミスを防ぐためです。「数字が入っているはずの箱に、間違って文字を入れてしまった」というバグ(プログラムの不具合)を、Goがプログラムを実行する前に見つけて教えてくれます。

実際にコードを動かして確認してみましょう。次のコードを main.go に書いて、go run main.go で実行してみてください(前回作った hello-go フォルダを使い回してOKです)。

package main

import "fmt"

func main() {
	name := "太郎"
	age := 14
	height := 160.5
	isStudent := true

	fmt.Println(name)
	fmt.Println(age)
	fmt.Println(height)
	fmt.Println(isStudent)
}

実行結果は次のようになります。

太郎
14
160.5
true

このように、fmt.Println() のかっこの中に変数の名前を書くと、その変数に入っている値が表示されます。

if文: 条件によって処理を分ける

ここからは「処理の流れをコントロールする方法」を学びます。まずは if(イフ)文です。

if 文は、「もし〇〇だったら、△△をする」という処理を書くためのものです。日常生活でも、「もし雨が降っていたら、傘を持っていく」のように、条件によって行動を変えることがありますよね。それと同じことをプログラムでも行います。

package main

import "fmt"

func main() {
	score := 85

	if score >= 80 {
		fmt.Println("よくできました!")
	} else {
		fmt.Println("もう少しがんばろう")
	}
}

このコードは、「もし score(点数)が80以上だったら『よくできました!』と表示する。そうでなければ(else)『もう少しがんばろう』と表示する」という意味です。

score := 85 なので、80以上という条件に当てはまり、実行結果は次のようになります。

よくできました!

score の値を 70 に変えて実行し直すと、今度は もう少しがんばろう と表示されるはずです。ぜひ実際に数字を書き換えて試してみてください。

条件の書き方(比較演算子)には、次のようなものがあります。

記号

意味

==

等しい

!=

等しくない

>

より大きい

<

より小さい

>=

以上

<=

以下

= が1つの = ではなく、== と2つ重なっている点に注意してください。1つの = は「代入(値を入れる)」、2つの == は「比較(等しいか確認する)」という、まったく違う意味になります。

for文: 処理を繰り返す

次は for(フォー)文です。for 文は、「同じ処理を、指定した回数だけ繰り返す」ためのものです。

たとえば、「1から5までの数字を、順番に表示する」というプログラムを考えてみましょう。for 文を使わないと、こう書くことになります。

fmt.Println(1)
fmt.Println(2)
fmt.Println(3)
fmt.Println(4)
fmt.Println(5)

同じような命令を5回も書くのは大変ですし、「100回繰り返したい」となったら100行書かなければいけません。ここで for 文の出番です。

package main

import "fmt"

func main() {
	for i := 1; i <= 5; i++ {
		fmt.Println(i)
	}
}

実行結果は次のようになります。

1
2
3
4
5

for i := 1; i <= 5; i++ { ... } は、3つの部分に分かれています。

  • i := 1 → 「i という名前の変数を用意して、1を入れる」(最初の1回だけ実行される)
  • i <= 5 → 「i が5以下である間、繰り返す」(この条件がfalseになったら繰り返しをやめる)
  • i++ → 「1回繰り返すごとに、iに1を足す」(i++i = i + 1の省略形です)

つまり、「iは1からスタートして、5以下の間は繰り返して、1周するたびにiを1ずつ増やしていく」という意味になります。i は1, 2, 3, 4, 5と変化していき、i が6になった時点で条件(5以下)を満たさなくなるので、繰り返しが終わります。

i のような、繰り返しのたびに変化していく変数のことを、慣習的にカウンター変数と呼びます。i という名前は「index(添字、番号)」の頭文字から来ていて、多くのプログラミング言語で「とりあえずの繰り返し変数の名前」としてよく使われます。

switch文: たくさんの選択肢から選ぶ

最後に switch(スイッチ)文です。if 文でも複数の条件を書くことはできますが、選択肢がたくさんある場合は、switch 文を使うとすっきり書けます。

package main

import "fmt"

func main() {
	weekday := "火曜日"

	switch weekday {
	case "月曜日":
		fmt.Println("週の始まりです")
	case "火曜日", "水曜日", "木曜日":
		fmt.Println("平日です")
	case "金曜日":
		fmt.Println("もうすぐ週末です")
	default:
		fmt.Println("休日です")
	}
}

switch weekday { ... } は、「weekday の値をチェックして、一致する case(ケース)の処理を実行する」という意味です。case "火曜日", "水曜日", "木曜日": のように、カンマで区切って複数の値を1つのcaseにまとめることもできます。どのcaseにも当てはまらなかった場合は、default(デフォルト)の処理が実行されます。

weekday := "火曜日" なので、実行結果は次のようになります。

平日です

もし if 文だけでこれを書こうとすると、if weekday == "月曜日" { ... } else if weekday == "火曜日" || weekday == "水曜日" { ... } ... のように長くなってしまいます。選択肢が多いときは switch 文を使うと、コードが読みやすくなります。

まとめ

今回は、以下のことを学びました。

  • 変数は「名前つきの箱」で、:= を使ってデータを保存できる
  • 型は「箱の種類」で、int(整数)、float64(小数)、string(文字列)、bool(真偽値)などがある
  • if 文は「もし〇〇なら」で処理を分岐させる
  • for 文は「〇〇の間」処理を繰り返す
  • switch 文は「たくさんの選択肢から選ぶ」ときに使う

これらは、どんなプログラミング言語を学ぶ上でも土台になる、とても大切な考え方です。ここまでのコードは、実際に自分のパソコンで書いて、数字や条件を変えながら動かしてみることを強くおすすめします。

次回は、「同じ処理をまとめて名前をつける」ための仕組みである関数と、コードを整理するためのパッケージについて学んでいきます。

次回:「Go言語入門③関数とパッケージ編」お楽しみに。

おすすめの記事