プログラミング言語共通の知識(2)ー分岐
if文
値によって処理を分けることが出来ます。
よく使う比較の記号(比較演算子といいます)を紹介します。
・==(等号)
→ 左辺の値と右辺の値が等しいかどうかの判定で使用します。
「=」ひとつだと代入となってしまうので注意しましょう。
・!=(不等号)
→ 左辺の値と右辺の値が等しくないかどうかの判定で使用します。
・>(大なり)
→ 左辺の値の方が右辺の値より大きいかどうかの判定で使用します。
・>=(大なりイコール)
→ 左辺の値が右辺の値以上かどうかの判定で使用します。
・<(小なり)
→ 左辺の値の方が右辺の値より小さいかどうかの判定で使用します。
・>=(小なりイコール)
→ 左辺の値が右辺の値以下かどうかの判定で使用します。
・!(否定)
→ ある判定を否定するときに使用します。
※否定は比較演算子ではなく論理演算子になります。
※Python3では「!」ではなく「not」になります。
なお、四則演算同様に( )も使うことが出来ます。
C
// ここの値を変えて試してみましょう。
int num = 50;
if (num == 50) {
printf("numは50です。\n");
}
if (num != 50) {
printf("numは50以外です。\n");
}
if (num > 50) {
printf("numは50より大きいです。\n");
}
if (num >= 50) {
printf("numは50以上です。\n");
}
if (num < 50) {
printf("numは50より小さいです。\n");
}
if (num <= 50) {
printf("numは50以下です。\n");
}
if (!(num == 50)) {
printf("numは50ではないです。\n");
}
C++
// ここの値を変えて試してみましょう。
int num = 50;
if (num == 50) {
std::cout << "numは50です。" << std::endl;
}
if (num != 50) {
std::cout << "numは50以外です。" << std::endl;
}
if (num > 50) {
std::cout << "numは50より大きいです。" << std::endl;
}
if (num >= 50) {
std::cout << "numは50以上です。" << std::endl;
}
if (num < 50) {
std::cout << "numは50より小さいです。" << std::endl;
}
if (num <= 50) {
std::cout << "numは50以下です。" << std::endl;
}
if (!(num == 50)) {
std::cout << "numは50ではないです。" << std::endl;
}
Java
// ここの値を変えて試してみましょう。
int num = 50;
if (num == 50) {
System.out.println("numは50です。");
}
if (num != 50) {
System.out.println("numは50以外です。");
}
if (num > 50) {
System.out.println("numは50より大きいです。");
}
if (num >= 50) {
System.out.println("numは50以上です。");
}
if (num < 50) {
System.out.println("numは50より小さいです。");
}
if (num <= 50) {
System.out.println("numは50以下です。");
}
if (!(num == 50)) {
System.out.println("numは50ではないです。");
}
PHP
// ここの値を変えて試してみましょう。
$num = 50;
if ($num == 50) {
echo "numは50です。\n";
}
if ($num != 50) {
echo "numは50以外です。\n";
}
if ($num > 50) {
echo "numは50より大きいです。\n";
}
if ($num >= 50) {
echo "numは50以上です。\n";
}
if ($num < 50) {
echo "numは50より小さいです。\n";
}
if ($num <= 50) {
echo "numは50以下です。\n";
}
if (!($num == 50)) {
echo "numは50ではないです。\n";
}
Ruby
# ここの値を変えて試してみましょう。
num = 50;
if num == 50
puts "numは50です。";
end
if num != 50
puts "numは50以外です。";
end
if num > 50
puts "numは50より大きいです。";
end
if num >= 50
puts "numは50以上です。";
end
if num < 50
puts "numは50より小さいです。";
end
if num <= 50
puts "numは50以下です。";
end
if !(num == 50)
puts "numは50ではないです。";
end
Python3
# ここの値を変えて試してみましょう。
num = 50;
if num == 50:
print("numは50です。");
if num != 50:
print("numは50以外です。");
if num > 50:
print("numは50より大きいです。");
if num >= 50:
print("numは50以上です。");
if num < 50:
print("numは50より小さいです。");
if num <= 50:
print("numは50以下です。");
if not num == 50:
print("numは50ではないです。");
JavaScript
// ここの値を変えて試してみましょう。
const num = 50;
if (num == 50) {
console.log("numは50です。");
}
if (num != 50) {
console.log("numは50以外です。");
}
if (num > 50) {
console.log("numは50より大きいです。");
}
if (num >= 50) {
console.log("numは50以上です。");
}
if (num < 50) {
console.log("numは50より小さいです。");
}
if (num <= 50) {
console.log("numは50以下です。");
}
if (!(num == 50)) {
console.log("numは50ではないです。");
}
if-else文
if文では条件に当てはまったときの処理を書くことが出来ました。
では、「偶数の時はこの処理、そうじゃない時はこの処理」とif文を何個も書くしか無いのでしょうか。
いいえ、ちゃんとあります。
else文を使えば、「ifの条件に当てはまらなかったとき」の処理を書くすることが出来ます。
ちなみに以下のような
・Aの条件に当てはまったとき
・Aの条件に当てはまらず、Bの条件に当てはまったとき
・上のどれにも当てはまらなかったとき
という書き方も「else if」のような書き方で可能です。
C
// ここの値を変えて試しみましょう。
int number = 0;
// numberが0のとき
if (number == 0) {
printf("numberは0です。\n");
} else if (number > 0) {
// numberが0ではなく、0より大きいとき
printf("numberは正の数です。\n");
} else {
// numberが0でも0より大きくもないとき
printf("numberは負の数です。\n");
}
C++
// ここの値を変えて試しみましょう。
int number = 0;
// numberが0のとき
if (number == 0) {
std::cout << "numberは0です。" << std::endl;
} else if (number > 0) {
// numberが0ではなく、0より大きいとき
std::cout << "numberは正の数です。" << std::endl;
} else {
// numberが0でも0より大きくもないとき
std::cout << "numberは負の数です。" << std::endl;
}
Java
// ここの値を変えて試しみましょう。
int number = 0;
// numberが0のとき
if (number == 0) {
System.out.println("numberは0です。");
} else if (number > 0) {
// numberが0ではなく、0より大きいとき
System.out.println("numberは正の数です。");
} else {
// numberが0でも0より大きくもないとき
System.out.println("numberは負の数です。");
}
PHP
// ここの値を変えて試してみましょう
$number = 0;
// numberが0のとき
if ($number == 0) {
echo "numberは0です。\n";
} else if ($number > 0) {
// numberが0ではなく、0より大きいとき
echo "numberは正の数です。\n";
} else {
// numberが0でも0より大きくもないとき
echo "numberは負の数です。\n";
}
Ruby
# ここの値を変えて試してみましょう
number = 0;
# numberが0のとき
if number == 0
puts "numberは0です。"
elsif number > 0
# numberが0ではなく、0より大きいとき
puts "numberは正の数です。"
else
# numberが0でも0より大きくもないとき
puts "numberは負の数です。"
end
Python3
# ここの値を変えて試してみましょう
number = 0;
# numberが0のとき
if number == 0:
print("numberは0です。")
elif number > 0:
# numberが0ではなく、0より大きいとき
print("numberは正の数です。")
else:
# numberが0でも0より大きくもないとき
print("numberは負の数です。")
JavaScript
// ここの値を変えて試してみましょう
const number = 0;
// numberが0のとき
if (number == 0) {
console.log("numberは0です。");
} else if (number > 0) {
// numberが0ではなく、0より大きいとき
console.log("numberは正の数です。");
} else {
// numberが0でも0より大きくもないとき
console.log("numberは負の数です。");
}
条件式の組み合わせ
今までに出てきた条件式は「numberが0のとき」のように単一のものだけでした。
でも、例えば「年齢が16歳~18歳」や「年齢が12歳以下か60歳以上」のような場合はどのように書けばよいのでしょうか?
そういうときには論理演算子というものを使い、「xxかつyy」とか「xxまたはyy」を表現します。
・&&(かつ)
→ &&の左の条件式と右の条件式がどちらも成り立つときに真(TRUE)となります。
※Python3では「&&」ではなく「and」になります。
・||(または)
→ ||の左の条件式と右の条件式のどちらかが成り立つときに真(TRUE)となります。
※Python3では「||」ではなく「or」になります。
C
// ここの値を変えて試してみましょう
int age = 16;
// ageが16歳以上18歳以下の場合
if (age >= 16 && age <= 18) {
printf("16歳以上18歳以下です。\n");
}
// ageが12歳以下もしくは60歳以上の場合
if (age <= 12 || age >= 60) {
printf("12歳以下もしくは60歳以上です。\n");
}
C++
// ここの値を変えて試してみましょう
int age = 16;
// ageが16歳以上18歳以下の場合
if (age >= 16 && age <= 18) {
std::cout << "16歳以上18歳以下です。" << std::endl;
}
// ageが12歳以下もしくは60歳以上の場合
if (age <= 12 || age >= 60) {
std::cout << "12歳以下もしくは60歳以上です。" << std::endl;
}
Java
// ここの値を変えて試してみましょう
int age = 16;
// ageが16歳以上18歳以下の場合
if (age >= 16 && age <= 18) {
System.out.println("16歳以上18歳以下です。");
}
// ageが12歳以下もしくは60歳以上の場合
if (age <= 12 || age >= 60) {
System.out.println("12歳以下もしくは60歳以上です。");
}
PHP
// ここの値を変えて試してみましょう
$age = 16;
// ageが16歳以上18歳以下の場合
if ($age >= 16 && $age <= 18) {
echo "16歳以上18歳以下です。\n";
}
// ageが12歳以下もしくは60歳以上の場合
if ($age <= 12 || $age >= 60) {
echo "12歳以下もしくは60歳以上です。\n";
}
Ruby
# ここの値を変えて試してみましょう
age = 16
# ageが16歳以上18歳以下の場合
# Rubyの場合は「&&」の代わりに「and」でも良いです。
if age >= 16 && age <= 18
puts "16歳以上18歳以下です。"
end
# ageが12歳以下もしくは60歳以上の場合
# Rubyの場合は「||」の代わりに「or」でも良いです。
if age <= 12 || age >= 60
puts "12歳以下もしくは60歳以上です。"
end
Python3
# ここの値を変えて試してみましょう
age = 16
# ageが16歳以上18歳以下の場合
if age >= 16 and age <= 18:
print("16歳以上18歳以下です。")
# ageが12歳以下もしくは60歳以上の場合
if age <= 12 or age >= 60:
print("12歳以下もしくは60歳以上です。")
JavaScript
// ここの値を変えて試してみましょう
const age = 16;
// ageが16歳以上18歳以下の場合
if (age >= 16 && age <= 18) {
console.log("16歳以上18歳以下です。");
}
// ageが12歳以下もしくは60歳以上の場合
if (age <= 12 || age >= 60) {
console.log("12歳以下もしくは60歳以上です。");
}
switch文
処理の分岐はif文の他にswitch文というものがあります。
if文は広範囲での条件分岐(0以上など)に適していますが、switch文は「1の場合」「2の場合」など、単純な場合分けに適しています。
switch文で指定した変数の値に応じて、caseで場合分けした処理を書きます。
場合分けした各処理の最後にbreak文を入れないと、その下の場合分けの処理も実行されてしまうので注意してください。
なお、Rubyの場合はcase文で指定した変数の値に応じてwhenで場合分けした処理を書きます。
Rubyはbreak文を入れなくても他の場合分けの処理が実行されることはありません。
C
// ここの値を変えて試してみましょう
int type = 0;
// typeの値を見て分岐
switch(type) {
// typeが0の場合
case 0:
printf("食品です。\n");
break; // これがないと以降の処理も行ってしまうので注意
// typeが1の場合
case 1:
printf("飲料です。\n");
break; // これがないと以降の処理も行ってしまうので注意
// typeが2の場合
case 2:
printf("日用品です。\n");
break; // これがないと以降の処理も行ってしまうので注意
// typeが上のどれでもない場合
default:
printf("その他です。\n");
}
C++
// ここの値を変えて試してみましょう
int type = 0;
// typeの値を見て分岐
switch(type) {
// typeが0の場合
case 0:
std::cout << "食品です。" << std::endl;
break; // これがないと以降の処理も行ってしまうので注意
// typeが1の場合
case 1:
std::cout << "飲料です。" << std::endl;
break; // これがないと以降の処理も行ってしまうので注意
// typeが2の場合
case 2:
std::cout << "日用品です。" << std::endl;
break; // これがないと以降の処理も行ってしまうので注意
// typeが上のどれでもない場合
default:
std::cout << "その他です。" << std::endl;
}
Java
// ここの値を変えて試してみましょう
int type = 0;
// typeの値を見て分岐
switch(type) {
// typeが0の場合
case 0:
System.out.println("食品です。");
break; // これがないと以降の処理も行ってしまうので注意
// typeが1の場合
case 1:
System.out.println("飲料です。");
break; // これがないと以降の処理も行ってしまうので注意
// typeが2の場合
case 2:
System.out.println("日用品です。");
break; // これがないと以降の処理も行ってしまうので注意
// typeが上のどれでもない場合
default:
System.out.println("その他です。");
}
PHP
// ここの値を変えて試してみましょう
$type = 0;
// typeの値を見て分岐
switch($type) {
// typeが0の場合
case 0:
echo "食品です。\n";
break; // これがないと以降の処理も行ってしまうので注意
// typeが1の場合
case 1:
echo "飲料です。\n";
break; // これがないと以降の処理も行ってしまうので注意
// typeが2の場合
case 2:
echo "日用品です。\n";
break; // これがないと以降の処理も行ってしまうので注意
// typeが上のどれでもない場合
default:
echo "その他です。\n";
}
Ruby
# ここの値を変えて試してみましょう
type = 0;
# typeの値を見て分岐
# Rubyの場合はcase-whenになる
case type
when 0
# typeが0の場合
puts "食品です。"
when 1
# typeが1の場合
puts "飲料です。"
when 2
# typeが2の場合
puts "日用品です。"
else
# typeが上のどれでもない場合
puts "その他です。"
end
Python3
# Python3にswitch文はありません。
JavaScript
// ここの値を変えて試してみましょう
const type = 0;
// typeの値を見て分岐
switch(type) {
// typeが0の場合
case 0:
console.log("食品です。");
break; // これがないと以降の処理も行ってしまうので注意
// typeが1の場合
case 1:
console.log("飲料です。");
break; // これがないと以降の処理も行ってしまうので注意
// typeが2の場合
case 2:
console.log("日用品です。");
break; // これがないと以降の処理も行ってしまうので注意
// typeが上のどれでもない場合
default:
console.log("その他です。");
}
この記事が気に入ったらサポートをしてみませんか?