更新:2024/08/30
Octaveの条件分岐(if, elseif, else)・練習問題について


はるか
条件分岐の使い方、Octaveでも基本だよね。

ふゅか
そうね、ifやelseif、elseを使えば、いろんな条件を組み合わせて柔軟に制御できるんだから。
目次
1. 条件分岐の使い方
Octaveでの条件分岐(if
, elseif
, else
)の使い方について説明します。条件分岐は、プログラムの流れを条件に応じて変更する際に使用されます。
1.1. 条件分岐の基本構文
Octaveでの条件分岐の基本的な構文は以下の通りです。
if 条件1
% 条件1が真の場合に実行されるコード
elseif 条件2
% 条件2が真の場合に実行されるコード
else
% どの条件も真でない場合に実行されるコード
end
1.2. 使用例

はるか
例えば、xが10の時に特定のメッセージを表示したい場合、if x == 10 のように書けばいい。

ふゅか
具体的な例を見てみましょう。
x = 10;
if x > 15
disp('xは15より大きいです');
elseif x == 10
disp('xは10です');
else
disp('xは10より小さいか、15より小さいです');
end
この例では、変数 x
の値に応じて異なるメッセージが表示されます。x
が10の場合、'xは10です'
が表示されます。
条件が評価され、最初に真となる条件のコードブロックが実行され、それ以降のelseif
やelse
のブロックは実行されません。
1.3. 複数条件の評価

はるか
複数の条件も、&&とか||で組み合わせればいいんだよね。

ふゅか
そうそう!複数の条件を一気にチェックできるから、より細かい制御が可能になるの。
複数の条件を同時に評価する場合は、論理演算子(&&
や ||
)を使用します。
x = 20;
y = 30;
if x > 10 && y < 40
disp('xは10より大きく、yは40より小さいです');
end
if x > 10 || y < 40
disp('xは10より大きいか、yは40より小さいです');
end
この場合、x > 10
および y < 40
の両方が真の場合に、xは10より大きく、yは40より小さいです。
この場合、x > 10
および y < 40
のどちらかが真の場合に、xは10より大きいか、yは40より小さいです。
2. 練習問題
2.1. 問題 1(数値の分類)
任意の整数 \( n \) を入力として受け取り、以下の条件に従って出力を行うプログラムを作成してください。
- \( n \) が正の整数の場合は、「\( n \) は正の数です」と出力する。
- \( n \) が負の整数の場合は、「\( n \) は負の数です」と出力する。
- \( n \) がゼロの場合は、「\( n \) はゼロです」と出力する。
解答例
n = input('整数を入力してください: ');
if n > 0
disp([num2str(n) ' は正の数です']);
elseif n < 0
disp([num2str(n) ' は負の数です']);
else
disp([num2str(n) ' はゼロです']);
end
このプログラムは、ユーザーが入力した整数 n が正の数、負の数、またはゼロのどれであるかを判定します。input 関数で入力を受け取り、if-elseif-else 構文で条件に応じたメッセージを表示します。
2.2. 問題 2(学生の成績評価)
0から100の間の点数を入力として受け取り、以下の基準に基づいて成績を判定するプログラムを作成してください。
- 90点以上は「A」
- 80点以上90点未満は「B」
- 70点以上80点未満は「C」
- 60点以上70点未満は「D」
- 60点未満は「F」
解答例
score = input('点数を入力してください (0-100): ');
if score >= 90
disp('成績は A です');
elseif score >= 80
disp('成績は B です');
elseif score >= 70
disp('成績は C です');
elseif score >= 60
disp('成績は D です');
else
disp('成績は F です');
end
このプログラムでは、入力された点数に基づいて成績を判定します。点数が特定の範囲内にあるかどうかを if-elseif-else で判断し、それに応じた成績(A, B, C, D, F)を表示します。条件の順序が重要で、範囲が重ならないように設計されています。
2.3. 問題 3 (偶数・奇数判定)
任意の整数 \( m \) を入力として受け取り、その数が偶数か奇数かを判定するプログラムを作成してください。偶数の場合は「偶数です」、奇数の場合は「奇数です」と出力する。
解答例
m = input('整数を入力してください: ');
if mod(m, 2) == 0
disp('偶数です');
else
disp('奇数です');
end
このプログラムは、入力された整数 m が偶数か奇数かを判定します。mod 関数を使って数値を2で割った余りを確認し、偶数の場合は余りが0になるため「偶数です」と出力し、それ以外の場合は「奇数です」と出力します。
PR