13.2 判定分岐 追加の練習

6 views (last 30 days)
elseif キーワードを if の後に使用すると、条件を追加できます。elseif ブロックは複数含めることができます。
密度を表示するかどうかを切り替える変数 doDisplay を追加してみてください。この条件は elseif ブロックと共に追加します。
doDisplayはどういう変数なのでしょうか?ヘルプに記載がなく下記の入力ではdoPlot0の時にエラーが表示されます.
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay
else
disp("The density of " + element ...
+ " is " + density)
end

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 15 Jun 2021
doDisplayは変数名なので、自分で定義してください。質問文のコードは「doDisplayが何か分からない」旨のエラーになります。下記のような定義をすれば問題文の意図した動きになります。
doPlot = 0;
doDisplay = 1; % doDisplayを1と定義したので、必ずelseif doDisplayの箇所が実行される
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay
disp('ここで密度を表示する');
else
disp("The density of " + element ...
+ " is " + density)
end
ここで密度を表示する
質問の箇所は、条件判定と分岐を行うif文の動作を理解する為のチュートリアルです。例えば下記コードでa,b,cの値をどうすれば、条件判断分のどこが実行されるか(どこが実行されないか)を理解する事が目的です。
a = 0; b = 0; c = 1;
if a
disp('a が真の(ゼロでない)場合');
elseif b
disp('先の条件が全て成立せず、b が真の(ゼロでない)場合');
elseif c
disp('先の条件が全て成立せず、c が真の(ゼロでない)場合');
else
disp('先の条件が全て成立しなかった場合');
end
先の条件が全て成立せず、c が真の(ゼロでない)場合

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!