
C++入門|2章を例題で確認する
C++の基本技を、例題で実戦確認。cin、cout、if文、stringを使って、入力・判定・表示の流れを修行ミッションのように身につけよう。
ここまでの2章では、C++の基本として、cinによる入力、coutによる出力、stringによる文字列の扱い、if文による条件判定などを学んできました。
C++の文法は、ひとつずつ見るとシンプルです。
しかし、実際のプログラムでは、これらを組み合わせて使うことが大切になります。
たとえば、キーボードから数値を入力し、その値が条件を満たすか判定して、結果を表示する。
あるいは、文字列を入力し、指定された合言葉と一致するかを調べて、OKかNGを表示する。
このような処理は、C++の基本練習としてとても重要です。
ドラゴンボール風にたとえるなら、2章で学んだ内容は、C++修行場で覚えた基本技です。
cinは、修行端末から値を受け取る技。
coutは、結果を表示パネルへ送る技。
if文は、スカウターの判定によって進む道を変える技。
stringは、技名や合言葉のような文字列を扱うための便利なカプセルです。
ここでは、2章の内容を確認するために、次の2つの例題に取り組みます。
| 例題 | 確認する内容 | ドラゴンボール風のイメージ |
|---|---|---|
| 例題2-1 | 整数を入力し、条件を満たすか判定する | 戦闘力が修行条件を満たすか調べる |
| 例題2-2 | 文字列を入力し、指定文字列と比較する | 修行場の合言葉が正しいか判定する |
どちらの例題も、C++の基本を確認するのにぴったりです。
プログラムを読むときは、次の流れを意識しましょう。
| 流れ | 内容 |
|---|---|
| 入力 | cinでキーボードから値を受け取る |
| 保存 | 受け取った値を変数に入れる |
| 判定 | if文で条件を調べる |
| 出力 | coutで結果を表示する |
この流れを理解できると、C++の基本的なプログラムをかなり読みやすくなります。
図:2章の例題で確認するC++の基本技

この図が示していること
この図では、C++の基本的な処理の流れを表しています。
cinで入力を受け取り、if文で条件を判定し、coutで結果を表示します。
2章の例題では、この流れを使って、数値の判定や文字列の比較を行います。
C++のプログラムは、入力、処理、出力の順番で考えると理解しやすくなります。
例題2-1:戦闘力が3の倍数か判定する
問題文
プログラムを実行すると「戦闘力を入力:」と表示され、入力待ち状態になります。
キーボードから整数値を入力し、入力した数値が3の倍数であれば、その数値が3の倍数であると表示するプログラムを作りなさい。
3の倍数ではない場合は、何も表示しなくてかまいません。
期待される実行結果①
戦闘力を入力:12
12は3の倍数です。期待される実行結果②
戦闘力を入力:10この例題では、整数の入力、if文による条件判定、coutによる表示を確認します。
ドラゴンボール風にいえば、入力された戦闘力が「3倍修行モード」に入れる値かどうかを調べるミッションです。
例題2-1の考え方
まず、キーボードから整数を入力するために、int型の変数を用意します。
int power;次に、coutで入力を促します。
cout << "戦闘力を入力:";そして、cinで入力された値をpowerに入れます。
cin >> power;3の倍数かどうかを調べるには、3で割った余りを確認します。
C++では、余りを求めるために%演算子を使います。
power % 3 == 0この条件が成り立つなら、powerは3の倍数です。
| 条件式 | 意味 |
|---|---|
| power % 3 == 0 | powerを3で割った余りが0 |
| 余りが0 | 3で割り切れる |
| 3で割り切れる | 3の倍数 |
たとえば、12を3で割ると余りは0です。
そのため、12は3の倍数です。
一方、10を3で割ると余りは1です。
そのため、10は3の倍数ではありません。
例題2-1の解答例
プロジェクト名/ファイル名: Ex2_1/main.cpp
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
// 戦闘力を入れる変数を宣言する
int power;
// キーボードから整数値を入力する
cout << "戦闘力を入力:";
cin >> power;
// 3で割った余りが0なら、3の倍数と判定する
if (power % 3 == 0) {
cout << power << "は3の倍数です。" << endl;
}
// プログラムが正常に終わったことを示す
return 0;
}解説
このプログラムでは、入力された整数が3の倍数かどうかを判定しています。
最初に、整数を入れるための変数powerを宣言しています。
int power;powerは、キーボードから入力された戦闘力を保存するための変数です。
次に、coutを使って入力を促すメッセージを表示しています。
cout << "戦闘力を入力:";この表示があることで、実行した人は何を入力すればよいのか分かります。
そのあと、cinを使ってキーボードから整数を受け取ります。
cin >> power;cin >> power; と書くことで、入力された整数がpowerに代入されます。
判定に使っているのは、次のif文です。
if (power % 3 == 0) {
cout << power << "は3の倍数です。" << endl;
}power % 3は、powerを3で割った余りを求める式です。
| powerの値 | power % 3 | 判定 |
|---|---|---|
| 12 | 0 | 3の倍数 |
| 9 | 0 | 3の倍数 |
| 10 | 1 | 3の倍数ではない |
| 14 | 2 | 3の倍数ではない |
if文は、条件がtrueのときだけ中の処理を実行します。
そのため、power % 3 == 0が成り立つときだけ、メッセージが表示されます。
ドラゴンボール風にたとえるなら、スカウターが戦闘力を調べて、3倍修行モードに適した値なら「3の倍数です」と表示しているイメージです。
図:%演算子で3の倍数を判定する

この図が示していること
この図では、入力された整数が3の倍数かどうかを、%演算子で判定する流れを表しています。
power % 3 == 0がtrueなら、3で割り切れるため、3の倍数です。
その場合だけ、coutで判定結果を表示します。
if文は、条件が成り立つときだけ処理を実行するため、条件判定の基本練習に向いています。
例題2-1で確認できるC++の基本
この例題では、次の内容を確認できます。
| 確認ポイント | 内容 |
|---|---|
| int型 | 整数を扱う |
| cin | キーボードから数値を入力する |
| cout | コンソールへ結果を表示する |
| if文 | 条件が成り立つときだけ処理する |
| %演算子 | 割った余りを求める |
| ==演算子 | 等しいかどうかを比較する |
この例題の中心は、条件式です。
power % 3 == 0この式が読めるようになると、倍数判定のプログラムが作りやすくなります。
たとえば、2の倍数ならpower % 2 == 0、5の倍数ならpower % 5 == 0のように考えられます。
例題2-2:修行場の合言葉を判定する
問題文
プログラムを実行すると「合言葉を入力:」と表示され、入力待ち状態になります。
キーボードから文字列を入力し、入力した文字列が「Training」であれば「入場OK!」と表示し、そうでなければ「入場NG!」と表示するプログラムを作りなさい。
ただし、文字列を扱う変数にはstring型を使うこと。
期待される実行結果①
合言葉を入力:Training
入場OK!期待される実行結果②
合言葉を入力:Battle
入場NG!ドラゴンボール風にたとえるなら、修行場の入口で合言葉を入力し、正しければ入場できる判定ミッションです。
例題2-2の考え方
文字列を扱うために、string型の変数を用意します。
string word;stringを使う場合は、stringヘッダーを読み込んでおくと分かりやすく安全です。
#include <string>次に、coutで入力を促します。
cout << "合言葉を入力:";そして、cinで入力された文字列をwordに入れます。
cin >> word;入力された文字列がTrainingかどうかは、==演算子で比較できます。
word == "Training"この条件が成り立つなら、入場OKを表示します。
そうでなければ、else側で入場NGを表示します。
| 入力文字列 | 判定 | 表示 |
|---|---|---|
| Training | 一致する | 入場OK! |
| Battle | 一致しない | 入場NG! |
| training | 大文字小文字が違う | 入場NG! |
C++のstringでは、==演算子を使って文字列の内容を比較できます。
この点は、C++で文字列を扱ううえでとても便利です。
例題2-2の解答例
プロジェクト名/ファイル名: Ex2_2/main.cpp
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv) {
// 合言葉を入れるstring型の変数を宣言する
string word;
// メッセージを表示して、キーボードから文字列を入力する
cout << "合言葉を入力:";
cin >> word;
// 入力された文字列がTrainingかどうかを判定する
if (word == "Training") {
cout << "入場OK!" << endl;
}
else {
cout << "入場NG!" << endl;
}
// プログラムが正常に終わったことを示す
return 0;
}解説
このプログラムでは、入力された文字列が指定された合言葉と一致するかどうかを判定しています。
まず、string型の変数wordを宣言しています。
string word;string型は、C++で文字列を扱うための便利な型です。
技名、名前、合言葉、メッセージなどを扱うときに使えます。
次に、coutで入力を促します。
cout << "合言葉を入力:";そのあと、cinで入力された文字列をwordに入れます。
cin >> word;たとえば、Trainingと入力すると、wordの中にはTrainingが入ります。
判定は、次のif文で行っています。
if (word == "Training") {
cout << "入場OK!" << endl;
}
else {
cout << "入場NG!" << endl;
}word == "Training" は、wordの中身がTrainingと等しいかどうかを調べています。
条件がtrueなら、入場OK!を表示します。
条件がfalseなら、else側に進み、入場NG!を表示します。
| 条件 | 結果 |
|---|---|
| word == "Training" がtrue | 入場OK! |
| word == "Training" がfalse | 入場NG! |
ドラゴンボール風にいえば、修行場の入口にある判定装置が、入力された合言葉をチェックしているイメージです。
合言葉がTrainingなら、扉が開いて入場OK。
違う言葉なら、入場NGになります。
string型と==演算子の便利さ
C++のstring型では、==演算子で文字列の内容を比較できます。
word == "Training"これは、wordの中身がTrainingと同じかどうかを調べる式です。
数値の比較と同じような感覚で書けるため、とても読みやすいです。
| 比較 | 意味 |
|---|---|
| word == "Training" | wordがTrainingと同じか |
| word != "Training" | wordがTrainingと違うか |
stringを使うと、文字列の入力、表示、比較が自然に書けます。
これはC++の大きな便利ポイントです。
図:stringの比較で合言葉を判定する

この図が示していること
この図では、string型の変数wordに入力された文字列を、Trainingという文字列と比較する流れを表しています。
word == "Training"がtrueなら、入場OK!を表示します。
falseなら、入場NG!を表示します。
C++のstringでは、==演算子で文字列の内容を比較できるため、合言葉判定のような処理を分かりやすく書けます。
例題2-2で確認できるC++の基本
この例題では、次の内容を確認できます。
| 確認ポイント | 内容 |
|---|---|
| string型 | 文字列を扱う |
| #include | stringを使う準備 |
| cin | キーボードから文字列を入力する |
| cout | 結果を表示する |
| if文 | 条件によって処理を分ける |
| else | 条件が成り立たないときの処理を書く |
| ==演算子 | 文字列の内容が等しいか比較する |
数値だけでなく、文字列もif文で判定できます。
C++ではstring型を使うことで、文字列の入力や比較を自然に書けます。
特に、word == "Training"のような書き方は、意味が読み取りやすいです。
2つの例題で確認した流れ
今回の2つの例題は、扱っているデータの種類が違います。
例題2-1では整数を扱いました。
例題2-2では文字列を扱いました。
しかし、プログラムの基本の流れはとても似ています。
| 流れ | 例題2-1 | 例題2-2 |
|---|---|---|
| 入力する | cin >> power; | cin >> word; |
| 判定する | power % 3 == 0 | word == "Training" |
| 表示する | 3の倍数なら表示 | OKまたはNGを表示 |
このように、C++では数値でも文字列でも、入力、判定、表示という流れで考えることができます。
ドラゴンボール風にいえば、どちらもスカウター判定ミッションです。
戦闘力を入力する場合は、数値条件を判定します。
合言葉を入力する場合は、文字列の一致を判定します。
扱うデータが違っても、C++の基本の組み立て方は共通しています。
2章の例題で身につけたい考え方
2章の例題で大切なのは、文法をばらばらに覚えることではありません。
入力された値を変数に入れ、その値を条件式で調べ、必要な結果を表示するという流れをつかむことです。
| 考え方 | 内容 |
|---|---|
| 入力された値は変数に保存する | cinで受け取った値をあとで使えるようにする |
| 条件式で判定する | if文の中でtrueかfalseを判断する |
| 条件に応じて表示を変える | coutで結果を出力する |
| 数値と文字列で比較方法が少し違う | 数値は%や比較演算、文字列は==などを使う |
C++では、cinとcoutを使うことで、入力と出力を分かりやすく書けます。
さらに、if文を組み合わせると、条件に応じてプログラムの動きを変えられます。
この感覚が身につくと、次の段階である繰り返し処理、関数、クラスの学習にも進みやすくなります。
2章で押さえておきたい確認ポイント
2章の内容を例題で確認するときは、次のポイントを意識しましょう。
| ポイント | 内容 |
|---|---|
| cout | メッセージや結果を表示する |
| cin | キーボードから値を入力する |
| int | 整数を扱う |
| string | 文字列を扱う |
| if文 | 条件が成り立つか判定する |
| else | 条件が成り立たない場合の処理を書く |
| %演算子 | 割った余りを求める |
| ==演算子 | 等しいかどうかを比較する |
| endl | 改行する |
2章で学ぶ内容は、C++プログラムの基本技です。
ドラゴンボール風に言えば、cinは修行端末から値を受け取る技、coutは結果を表示パネルに送る技、if文はスカウター判定で進む道を決める技です。
この基本技を例題で確認しておくと、次の学習に進んだときにも、コードの流れを落ち着いて読めるようになります。
