- Day 5 のゴールと全体イメージ
- コンソール入力の基本:Console.ReadLine()
- 文字列入力を使った簡単な対話プログラム
- 数値変換の必要性:文字列から数値へ
- Parse() の注意点:入力エラーで例外が発生する
- TryParse() による安全な数値変換
- 入力エラー対策の基本パターン
- 文字列入力+数値変換の総合例:簡易プロフィール+年齢チェック
- Day 5 のまとめ
- Day 5 ミニ課題のゴール
- 年齢計算アプリを日本語で設計する
- Console.ReadLine() で生まれた年を入力してもらう
- Parse() を使って文字列を数値に変換する
- TryParse() で安全に数値変換する
- 入力エラー対策:正しい値が入るまで繰り返す
- 年齢計算アプリの完成版テンプレート
- Day 5 ミニ課題のまとめ
Day 5 のゴールと全体イメージ
Day 5 では、「コンソールからユーザーの入力を受け取る」方法を学びます。 これまでのプログラムは、コードの中に値を書き込んでいましたが、 いよいよ「ユーザーがキーボードから入力した値」を扱えるようになります。
学ぶ項目は次のとおりです。
Console.ReadLine()- 文字列入力
- 数値変換
Parse()TryParse()- 入力エラー対策
これらを、初心者向けにかみ砕きながら、例題とコードを交えてステップバイステップで説明していきます。
コンソール入力の基本:Console.ReadLine()
Console.ReadLine() は「1行分の入力を受け取る」
Console.ReadLine() は、コンソール画面からユーザーが入力した「1行分の文字列」を受け取るためのメソッドです。
- ユーザーがキーボードで文字を入力する
- Enter キーを押す
- その 1行分の文字列が
Console.ReadLine()の戻り値になる
という流れになります。
文字列として受け取る基本例
まずは、名前を入力してもらう簡単な例を見てみます。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("あなたの名前を入力してください:");
// Console.ReadLine() で 1 行分の文字列を受け取ります
string name = Console.ReadLine(); // ユーザーが入力した文字列が name に入る
Console.WriteLine($"こんにちは、{name} さん!");
Console.ReadLine(); // 画面がすぐ閉じないように待機
}
}
C#ここでのポイントは、
Console.ReadLine()の戻り値は「文字列(string)」であること- 入力された内容をそのまま表示することで、入力と出力の流れを確認できること
です。
文字列入力を使った簡単な対話プログラム
複数項目を入力してもらう
次に、名前と趣味を入力してもらう例です。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("名前を入力してください:");
string name = Console.ReadLine(); // 名前を入力
Console.WriteLine("趣味を入力してください:");
string hobby = Console.ReadLine(); // 趣味を入力
Console.WriteLine("=== プロフィール ===");
Console.WriteLine($"名前:{name}");
Console.WriteLine($"趣味:{hobby}");
Console.ReadLine();
}
}
C#ここでの重要ポイントは、
Console.ReadLine()は何度でも呼び出せること- 入力された文字列をそのまま
string変数に入れて扱えること
です。
数値変換の必要性:文字列から数値へ
入力は必ず「文字列」で来る
Console.ReadLine() は、ユーザーが何を入力しても「文字列」として受け取ります。
例えば、年齢を入力してもらう場合でも、最初は文字列です。
Console.WriteLine("年齢を入力してください:");
string ageText = Console.ReadLine(); // ここではまだ文字列
C#しかし、年齢を「計算」に使いたい場合は、
- 文字列 → 整数(
int)
に変換する必要があります。
Parse() を使った基本的な数値変換
int.Parse() を使うと、文字列を整数に変換できます。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("年齢を入力してください:");
string ageText = Console.ReadLine(); // 文字列として入力を受け取る
// 文字列を int に変換します
int age = int.Parse(ageText); // "30" → 30 のように変換されます
Console.WriteLine($"あなたは {age} 歳ですね。");
Console.ReadLine();
}
}
C#ここでのポイントは、
int.Parse(文字列)で「数値の文字列」をintに変換できること- 入力が
"30"のような「数字だけの文字列」であることが前提であること
です。
Parse() の注意点:入力エラーで例外が発生する
数字以外が入力されるとエラーになる
int.Parse() は便利ですが、ユーザーが数字以外を入力した場合、 例外(エラー)が発生してプログラムが止まってしまう という問題があります。
例えば、
"abc"- 空文字
"" "30歳"
などを int.Parse() しようとすると、FormatException が発生します。
初心者の方にとっては、
Parse は「ちゃんと数字が入っている前提」で使うもの
と覚えておくとよいです。
TryParse() による安全な数値変換
TryParse() は「変換できるかどうか」を教えてくれる
TryParse() は、
- 変換に成功したかどうかを
boolで返す - 変換結果を「out 引数」に入れてくれる
という、安全な数値変換のためのメソッドです。
int.TryParse() の基本形は次のようになります。
bool result = int.TryParse(文字列, out 変換後の値);
C#TryParse() の具体例
年齢を安全に数値変換する例を見てみます。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("年齢を入力してください:");
string ageText = Console.ReadLine(); // ユーザー入力(文字列)
// TryParse を使って安全に変換を試みます
bool isParsed = int.TryParse(ageText, out int age);
if (isParsed)
{
// 変換に成功した場合
Console.WriteLine($"あなたは {age} 歳ですね。");
}
else
{
// 変換に失敗した場合(数字以外が入力されたなど)
Console.WriteLine("年齢は数字で入力してください。");
}
Console.ReadLine();
}
}
C#ここでの重要ポイントは、
TryParseは「変換できたかどうか」をboolで返すこと- 変換に成功したときだけ、
outで受け取った変数に値が入ること - 失敗した場合でも例外は発生せず、プログラムが止まらないこと
です。
入力エラー対策の基本パターン
「数字かどうか」をチェックしてから使う
ユーザー入力は、必ずしも期待どおりとは限りません。 そのため、入力をそのまま信じず、チェックしてから使う ことが大切です。
TryParse() を使うと、次のような「入力エラー対策」ができます。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("商品の価格を入力してください(数字のみ):");
string priceText = Console.ReadLine();
bool isParsed = decimal.TryParse(priceText, out decimal price);
if (!isParsed)
{
Console.WriteLine("価格は数字で入力してください。");
Console.ReadLine();
return; // プログラムを終了
}
Console.WriteLine($"入力された価格は {price} 円です。");
Console.ReadLine();
}
}
C#ここでのポイントは、
TryParseの結果を見て「成功したときだけ次の処理に進む」こと- 失敗した場合は、メッセージを表示して処理を中断すること
です。
繰り返し入力させるパターン
もう一歩進んで、「正しい値が入力されるまで繰り返す」こともできます。
using System;
class Program
{
static void Main(string[] args)
{
decimal price;
while (true)
{
Console.WriteLine("商品の価格を入力してください(数字のみ):");
string priceText = Console.ReadLine();
bool isParsed = decimal.TryParse(priceText, out price);
if (isParsed)
{
// 正しく入力されたらループを抜ける
break;
}
Console.WriteLine("入力エラー:価格は数字で入力してください。もう一度入力してください。");
}
Console.WriteLine($"最終的に入力された価格は {price} 円です。");
Console.ReadLine();
}
}
C#ここでの重要ポイントは、
while (true)とbreakを組み合わせて「正しい入力が来るまで繰り返す」こと- ユーザーに「何が間違っているか」をメッセージで伝えること
です。
文字列入力+数値変換の総合例:簡易プロフィール+年齢チェック
Day 5 の学びをまとめて使う
最後に、Day 5 の内容をまとめた例として、 名前と年齢を入力してもらい、年齢を安全に数値変換してからメッセージを表示するプログラムを書いてみます。
using System;
class Program
{
static void Main(string[] args)
{
// 名前の入力(文字列)
Console.WriteLine("名前を入力してください:");
string name = Console.ReadLine();
// 年齢の入力(文字列 → 数値)
int age;
while (true)
{
Console.WriteLine("年齢を入力してください(数字のみ):");
string ageText = Console.ReadLine();
// TryParse で安全に変換
bool isParsed = int.TryParse(ageText, out age);
if (isParsed)
{
// 正しく変換できたらループを抜ける
break;
}
Console.WriteLine("入力エラー:年齢は数字で入力してください。");
}
// 入力された情報を使ってメッセージを表示
Console.WriteLine("=== プロフィール ===");
Console.WriteLine($"名前:{name}");
Console.WriteLine($"年齢:{age} 歳");
// 年齢に応じたメッセージ(比較演算子と論理演算子の応用)
if (age >= 20)
{
Console.WriteLine("成人ですね。");
}
else
{
Console.WriteLine("未成年ですね。");
}
Console.ReadLine();
}
}
C#このコードの中には、
Console.ReadLine()→ 文字列入力- 文字列入力 →
string変数で管理 int.TryParse()→ 安全な数値変換- 入力エラー対策 →
whileとTryParseを組み合わせて再入力させる
という Day 5 の学習項目がすべて含まれています。
Day 5 のまとめ
Day 5 では、コンソール入力を通して、
Console.ReadLine()でユーザーの入力を「文字列」として受け取る- 文字列入力をそのまま表示して、入力と出力の流れを確認する
Parse()で文字列を数値に変換する(ただし入力が正しい前提)TryParse()で「変換できるかどうか」を確認しながら安全に数値変換する- 入力エラー対策として、失敗時にメッセージを表示したり、再入力を促したりする
という流れを学びました。
コンソール入力を使えるようになると、
- ユーザーと対話するプログラム
- 簡易計算機
- 家計簿やプロフィール入力ツール
など、ぐっと「実用的なプログラム」に近づいていきます。
ぜひ、
- 自分で項目を増やして、入力フォームのようなプログラムを作ってみる
int.TryParseやdecimal.TryParseを使って、数値入力の練習をする- 入力エラー時のメッセージを工夫して、ユーザーに優しいプログラムを目指す
といったアレンジをしながら、「入力を受け取り、チェックして、安全に使う」感覚を育てていってください。
Day 5 ミニ課題のゴール
Day 5 のミニ課題では、「年齢計算アプリ」を題材にして、コンソール入力の基本を一通り体験していきます。 キーボードから生年月日や年齢に関する情報を入力してもらい、それを使って「現在の年齢」を計算する流れを作ります。
ここで扱うポイントは次のとおりです。
Console.ReadLine()- 文字列入力
- 数値変換
Parse()TryParse()- 入力エラー対策
これらをステップバイステップで組み立てながら、初心者の方にも分かりやすい形でコードを作っていきます。
年齢計算アプリを日本語で設計する
まずは「何を入力して、何を計算するか」を言葉で整理する
年齢計算アプリの基本的な流れを、日本語で整理すると次のようになります。
- ユーザーに「生まれた年」を入力してもらう
- 現在の年(ここでは簡単のために固定値を使う)を用意する
- 「現在の年 − 生まれた年」で年齢を計算する
- 結果を画面に表示する
- 入力が数字でない場合は、エラーメッセージを表示して再入力してもらう
この「日本語の設計」を、そのまま C# のコードに落とし込んでいきます。
Console.ReadLine() で生まれた年を入力してもらう
文字列として入力を受け取る
まずは、生まれた年をコンソールから入力してもらいます。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("生まれた年を西暦で入力してください(例:1990):");
// Console.ReadLine() で 1 行分の文字列を受け取ります
string birthYearText = Console.ReadLine(); // ユーザーが入力した文字列が入る
Console.WriteLine($"入力された生まれた年(文字列):{birthYearText}");
Console.ReadLine(); // 画面がすぐ閉じないように待機
}
}
C#ここでのポイントは、
Console.ReadLine()は「必ず文字列(string)」を返すこと- 入力された値をそのまま表示して、入力の流れを確認できること
です。
Parse() を使って文字列を数値に変換する
「文字列 → int」に変換して年齢を計算する
次に、入力された生まれた年を整数に変換して、年齢を計算してみます。 ここでは、現在の年を仮に 2025 とします。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("生まれた年を西暦で入力してください(例:1990):");
string birthYearText = Console.ReadLine(); // 文字列として入力を受け取る
// 文字列を int に変換します(Parse を使用)
int birthYear = int.Parse(birthYearText); // "1990" → 1990 のように変換されます
int currentYear = 2025; // 現在の年(ここでは固定値)
int age = currentYear - birthYear; // 年齢を計算
Console.WriteLine($"今年({currentYear}年)の年齢は {age} 歳です。");
Console.ReadLine();
}
}
C#ここでの重要ポイントは、
int.Parse(文字列)で「数字だけの文字列」を整数に変換できること- 入力が
"1990"のような「数字だけ」であることが前提であること currentYear - birthYearというシンプルな式で年齢を計算していること
です。
ただし、Parse() は入力が数字でない場合にエラー(例外)を出してしまうため、 実際のアプリではもう少し安全な方法が必要になります。
TryParse() で安全に数値変換する
「変換できるかどうか」を確認しながら年齢を計算する
TryParse() を使うと、入力が数字かどうかをチェックしながら変換できます。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("生まれた年を西暦で入力してください(例:1990):");
string birthYearText = Console.ReadLine(); // ユーザー入力(文字列)
// TryParse を使って安全に変換を試みます
bool isParsed = int.TryParse(birthYearText, out int birthYear);
if (isParsed)
{
int currentYear = 2025;
int age = currentYear - birthYear;
Console.WriteLine($"今年({currentYear}年)の年齢は {age} 歳です。");
}
else
{
Console.WriteLine("入力エラー:生まれた年は数字で入力してください。");
}
Console.ReadLine();
}
}
C#ここでの重要ポイントは、
TryParseは「変換に成功したかどうか」をboolで返すこと- 成功したときだけ
birthYearに値が入ること - 失敗しても例外は発生せず、プログラムが止まらないこと
です。
入力エラー対策:正しい値が入るまで繰り返す
while ループと TryParse を組み合わせる
年齢計算アプリとしては、「間違った入力があったらもう一度入力してもらう」方が親切です。 そこで、while ループと TryParse を組み合わせて、正しい値が入るまで繰り返す形にしてみます。
using System;
class Program
{
static void Main(string[] args)
{
int birthYear;
while (true)
{
Console.WriteLine("生まれた年を西暦で入力してください(例:1990):");
string birthYearText = Console.ReadLine();
// TryParse で安全に変換
bool isParsed = int.TryParse(birthYearText, out birthYear);
if (isParsed)
{
// 正しく変換できたらループを抜ける
break;
}
Console.WriteLine("入力エラー:生まれた年は数字だけで入力してください。もう一度入力してください。");
}
int currentYear = 2025;
int age = currentYear - birthYear;
Console.WriteLine("=== 年齢計算結果 ===");
Console.WriteLine($"生まれた年:{birthYear} 年");
Console.WriteLine($"今年({currentYear}年)の年齢:{age} 歳");
Console.ReadLine();
}
}
C#ここでの重要ポイントは、
while (true)とbreakを使って「正しい入力が来るまで繰り返す」こと- エラー時に「何が間違っているか」をメッセージで伝えていること
- 正しい入力が得られたら、年齢計算に進むこと
です。
年齢計算アプリの完成版テンプレート
名前も入力して、少しだけ「アプリらしさ」を出す
最後に、Day 5 の学びをすべて盛り込んだ「年齢計算アプリ」のテンプレート例を示します。
using System;
class Program
{
static void Main(string[] args)
{
// 名前の入力(文字列)
Console.WriteLine("名前を入力してください:");
string name = Console.ReadLine();
// 生まれた年の入力(文字列 → 数値)
int birthYear;
while (true)
{
Console.WriteLine("生まれた年を西暦で入力してください(例:1990):");
string birthYearText = Console.ReadLine();
// TryParse で安全に変換
bool isParsed = int.TryParse(birthYearText, out birthYear);
if (isParsed)
{
// 正しく変換できたらループを抜ける
break;
}
Console.WriteLine("入力エラー:生まれた年は数字だけで入力してください。");
}
// 現在の年(ここでは固定値)
int currentYear = 2025;
// 年齢を計算
int age = currentYear - birthYear;
Console.WriteLine();
Console.WriteLine("=== 年齢計算アプリ ===");
Console.WriteLine($"名前:{name} さん");
Console.WriteLine($"生まれた年:{birthYear} 年");
Console.WriteLine($"今年({currentYear}年)の年齢:{age} 歳");
// 年齢に応じた簡単なメッセージ
if (age >= 20)
{
Console.WriteLine("成人ですね。");
}
else
{
Console.WriteLine("未成年ですね。");
}
Console.ReadLine();
}
}
C#このコードの中には、
Console.ReadLine()→ 名前・生まれた年の入力- 文字列入力 →
string変数で管理 int.TryParse()→ 生まれた年の安全な数値変換- 入力エラー対策 → ループで再入力を促す
- 計算結果の表示 → 年齢とメッセージを出力
という Day 5 の学習項目がすべて含まれています。
Day 5 ミニ課題のまとめ
年齢計算アプリを通して、
- コンソールから文字列入力を受け取る
- 文字列を数値に変換して計算に使う
Parse()とTryParse()の違いを体験する- 入力エラー対策として、失敗時にメッセージを表示し、再入力を促す
という一連の流れを確認しました。
コンソール入力を使えるようになると、 プログラムが「ユーザーと対話するもの」に変わっていきます。
ぜひ、
- 現在の年を自分で変更してみる
- 生まれた月や日も入力して、より正確な年齢計算に挑戦してみる
- 入力エラー時のメッセージを工夫して、ユーザーに優しいアプリにしてみる
といったアレンジをしながら、「入力を受け取り、チェックして、安全に使う」感覚を育てていってください。
