この章では、C++ の「条件分岐」と「繰り返し処理」を説明します。
#include <iostream>
int main()
{
if (true)
{
std::cout << "True" << std::endl;
} else {
std::cout << "False" << std::endl;
}
if (false)
{
std::cout << "True" << std::endl;
} else {
std::cout << "False" << std::endl;
}
std::cout << "true is " << true << "." << std::endl;
std::cout << "false is " << false << "." << std::endl;
if (-1)
{
std::cout << "True" << std::endl;
} else {
std::cout << "False" << std::endl;
}
if (0)
{
std::cout << "True" << std::endl;
} else {
std::cout << "False" << std::endl;
}
std::cout << "10==10 is " << (10==10) << "." << std::endl;
std::cout << "10==20 is " << (10==20) << "." << std::endl;
return 0;
}
True
False
true is 1.
false is 0.
True
False
10==10 is 1.
10==20 is 0.
if 文は、if else 文を使って、3つ以上の選択肢を設定することができます。
#include <iostream>
void yourscore(int code);
int main()
{
yourscore(70);
yourscore(90);
yourscore(50);
yourscore(30);
return 0;
}
void yourscore(int score)
{
if ( score >= 80 )
{
std::cout << "成績はAです。" << std::endl;
} else if ( score >= 60 ) {
std::cout << "成績はBです。" << std::endl;
} else if ( score >= 40 ) {
std::cout << "成績はCです。" << std::endl;
} else {
std::cout << "また頑張りましょう。" << std::endl;
}
}
成績はBです。
成績はAです。
成績はCです。
また頑張りましょう。
条件分岐の方向が多くある場合には、switch 文を使うのも便利です。
#include <iostream>
void character(char code);
int main()
{
character('C');
character('A');
character('B');
character('D');
character(65);
return 0;
}
void character(char code)
{
switch (code)
{
case 'A':
std::cout << 'A' << std::endl;
break;
case 'B':
std::cout << 'B' << std::endl;
break;
case 'C':
std::cout << 'C' << std::endl;
break;
default:
std::cout << "not matching." << std::endl;
}
}
C
A
B
not matching.
A
#include <iostream>
int main()
{
int num = 1;
while (num < 11)
{
std::cout << num << "回目" << std::endl;
num++;
}
std::cout << "End..." << std::endl;
return 0;
}
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目
10回目
End...
while 文は break キーワードで終了させることもできます。
#include <iostream>
int main()
{
int num = 1;
while (num)
{
std::cout << num << "回目" << std::endl;
num++;
if (num > 10) { break; }
}
std::cout << "End..." << std::endl;
return 0;
}
実行結果は先ほどと同じです。
continue というキーワードを使うと、繰り返し処理を その回の処理だけスキップできます。
#include <iostream>
int main()
{
int num = 0;
while (num < 11)
{
num++;
if (num % 2 != 0 ) { continue; }
std::cout << num << "回目" << std::endl;
}
std::cout << "End..." << std::endl;
return 0;
}
2回目
4回目
6回目
8回目
10回目
End...
do-while 文を使うと、条件に合致するかどうかに関わらず、最低一回は処理が実行される繰り返し文が書けます。
#include <iostream>
int main()
{
int num = 0;
do {
std::cout << num << "回目" << std::endl;
num++;
if (num > 10) { break; }
} while (num);
std::cout << "End.." << std::endl;
return 0;
}
0回目
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目
10回目
End..
繰り返す回数が前もって決まっている場合などは、while 文よりも、for 文の方が よく使われます。
#include <iostream>
int main()
{
for (int i=1; i <= 10; i++)
{
std::cout << i << "回目" << std::endl;
}
std::cout << "End.." << std::endl;
return 0;
}
1回目
2回目
3回目
4回目
5回目
6回目
7回目
8回目
9回目
10回目
End..