13.2 判定分岐 追加の練習

28 views (last 30 days)
佳奈子 浜口
佳奈子 浜口 on 15 Jun 2021
Answered: Atsushi Ueno on 15 Jun 2021
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)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!