Go言語の出力と入力の基本!fmt.Printlnとfmt.Scanの使い方をやさしく解説
生徒
「Go言語で文字や数字を表示するにはどうすればいいんですか?」
先生
「Go言語では、fmt.Printlnという命令を使って、画面に文字や数字を出力できますよ。」
生徒
「なるほど!じゃあ逆に、キーボードから何か入力したいときはどうすればいいですか?」
先生
「そのときはfmt.Scanを使えば、キーボードからの入力を受け取ることができます。順番に見ていきましょう!」
1. Go言語の出力とは?fmt.Printlnの基本
まずは、Go言語で画面にメッセージを表示する「出力(しゅつりょく)」について紹介します。出力とは、パソコンが私たちに情報を伝える仕組みです。プログラムが正常に動いているかを確認したり、計算結果をユーザーへ見せたりするときに使われます。
Go言語では、fmt.Println(エフエムティー・プリントライン)という命令で画面に文字や数字を表示できます。この命令は、表示したあと自動的に改行されるので、次の内容が見やすく並びます。初心者の方が最初に覚える命令として、とてもよく使われます。
実際の動きをイメージしやすいように、簡単なサンプルを見てみましょう。
package main
import "fmt"
func main() {
fmt.Println("はじめてのGo言語!")
fmt.Println("数字も表示できます:", 10)
}
このプログラムを実行すると、画面には次のように表示されます。
はじめてのGo言語!
数字も表示できます: 10
fmt.Printlnは、文字列だけでなく数値や変数もそのまま表示できます。文字は"(ダブルクオーテーション)で囲み、数字は囲まずに記述します。プログラムの動作確認やメッセージ表示に欠かせない、とても基本的で便利な命令です。
2. fmt.Printとの違いとは?改行の有無に注目!
fmt.Printlnに似た命令にfmt.Printがあります。fmt.Printは改行しない出力命令です。つまり、次の出力が同じ行に続いて表示されます。
package main
import "fmt"
func main() {
fmt.Print("こんにちは、")
fmt.Print("Go言語!")
}
この実行結果は次のようになります。
こんにちは、Go言語!
行を分けたいときはfmt.Println、同じ行に続けて書きたいときはfmt.Printを使いましょう。
3. Go言語の入力とは?fmt.Scanの基本
次に紹介するのは「入力(にゅうりょく)」です。入力は、パソコンが人間から情報を受け取ることです。Go言語では、fmt.Scanを使ってキーボードからの入力を受け取ることができます。
次の例を見てみましょう。キーボードで名前を入力して、それを画面に表示するプログラムです。
package main
import "fmt"
func main() {
var name string
fmt.Print("あなたの名前を入力してください:")
fmt.Scan(&name)
fmt.Println("こんにちは、" + name + "さん!")
}
実行結果は以下のようになります(一例です)。
あなたの名前を入力してください:たろう
こんにちは、たろうさん!
var name stringは、「nameという名前の文字用の入れ物を作る」という意味です。
&nameは「nameという変数にデータを入れる準備ができているよ」と伝える記号です。この&(アンパサンド)は、変数に値を入れるときに使います。
4. 数字を入力して足し算する例
今度は、数字を2つ入力して足し算する例を見てみましょう。数字の入力では、変数の型をintにします。intは整数(小数点がない数)を表します。
package main
import "fmt"
func main() {
var a, b int
fmt.Print("1つ目の数字を入力してください:")
fmt.Scan(&a)
fmt.Print("2つ目の数字を入力してください:")
fmt.Scan(&b)
fmt.Println("合計は:", a + b)
}
入力と出力の流れが理解できると、いろいろなプログラムが作れるようになります。
5. よくある間違いと注意点
- 入力するときにスペースで区切る必要がある:
たとえば、fmt.Scan(&a, &b)と複数の変数に一度に入力する場合は、スペースで区切って1行で入力する必要があります。 - &(アンパサンド)を忘れない:
fmt.Scanでは、変数の前に必ず&をつけましょう。これがないとエラーになります。 - Enterキーで確定:
入力後に必ずEnterキーを押して確定させてください。
初心者の方は、最初は間違っても大丈夫です。何度も試しながら、少しずつ慣れていきましょう。
6. 出力と入力を組み合わせたミニアプリ
最後に、出力と入力を両方使った簡単なミニアプリを作ってみましょう。年齢を入力して、その人の生まれた年を計算するプログラムです。
package main
import "fmt"
func main() {
var age int
fmt.Print("あなたの年齢を入力してください:")
fmt.Scan(&age)
birthYear := 2025 - age
fmt.Println("あなたの生まれた年は、", birthYear, "年ですね。")
}
このように、fmt.Printlnとfmt.Scanを使いこなすことで、Go言語で会話のようなプログラムが書けるようになります。
まとめ
この記事では、Go言語でよく使われる出力関数fmt.Printlnとfmt.Print、そして入力関数fmt.Scanの基本的な使い方を、初心者にもわかりやすく丁寧に解説しました。fmt.Printlnを使えば、文字列や数値を画面に表示し、最後に自動で改行されるというシンプルながら便利な動作を理解できたはずです。また、fmt.Printとの違いによって、改行を制御できることも学びました。
入力の部分では、fmt.Scanを使ってキーボードから値を受け取る方法を説明しました。変数の前に&(アンパサンド)をつける理由や、変数の型によって取り扱うデータが異なる点も初心者向けに細かく紹介しました。文字列の入力や整数の読み取りなど、現場でもよく使われる具体例をもとに理解を深めたことでしょう。
特に、出力と入力を組み合わせたミニアプリでは、実際に年齢を入力し、そこから生まれ年を計算するという実用的かつわかりやすい構成にすることで、「入力 → 処理 → 出力」の一連の流れを体験できたと思います。こうした小さなプログラムを自分で少しずつ改造していくことで、Go言語の学習がどんどん楽しくなっていきます。
ここでもう一つ練習として、入力された2つの整数の平均値を求める簡単なアプリを作ってみましょう。今まで学んだ内容を復習するのにぴったりの例です。
package main
import "fmt"
func main() {
var x, y int
fmt.Print("1つ目の整数を入力してください:")
fmt.Scan(&x)
fmt.Print("2つ目の整数を入力してください:")
fmt.Scan(&y)
avg := (x + y) / 2
fmt.Println("2つの平均値は:", avg)
}
このプログラムでは、2つの整数を受け取ってから平均値を計算して出力します。整数同士の割り算では、小数点以下は切り捨てられるので、その点にも注意しておきましょう。
Go言語では、基本的な入出力がしっかりできるようになると、様々なアプリケーションやシステムの土台を作る力がついてきます。まずはエラーを恐れず、表示されるメッセージを見ながら試してみることが大切です。
生徒
「先生、Go言語での出力と入力のやり方、かなりわかるようになってきました!」
先生
「お、それはいいですね。fmt.Printlnとfmt.Scanの使い方を覚えたことで、いろんな処理が書けるようになりますよ。」
生徒
「最初は&の意味とか少し難しかったけど、ちゃんと理由を知ったら納得できました!」
先生
「そうですね。変数に値を入れるときは『ここに入れて』って教える必要があるから、そのときに&を使うんですよ。」
生徒
「出力も改行あり・なしの違いでPrintlnとPrintを使い分けられるんですね。ちょっとずつ面白くなってきました!」
先生
「そうやって一歩ずつ理解していくのが大切です。次は少しだけ条件分岐や繰り返し処理にもチャレンジしてみると、もっとできることが広がりますよ。」