Skip to content

MATLAB - If Else 语句

MATLAB - 条件语句:if、elseif、else

Section titled “MATLAB - 条件语句:if、elseif、else”

条件语句允许您的代码根据特定条件是否满足来做出决策并执行不同的代码块。MATLAB 中其基本结构是 if...elseif...else...end 块。

最简单的条件语句形式是,仅当给定表达式为真时才执行一个代码块。

if <expression>
% 如果表达式为真,则执行的语句
end

if 语句后可跟一个可选的 else 语句,当 if 表达式为假时执行 else 语句。这提供了一种处理两种可能结果的方式。

if <expression>
% 如果表达式为真,则执行的语句
else
% 如果表达式为假,则执行的语句
end
a = 100;
% 检查布尔条件
if a < 20
fprintf('a is less than 20.\n');
else
fprintf('a is NOT less than 20.\n');
end
fprintf('The final value of a is: %d\n', a);

执行此代码会产生以下结果:

a is NOT less than 20.
The final value of a is: 100

处理多个条件:if...elseif...else...end

Section titled “处理多个条件:if...elseif...else...end”

对于多于两种可能结果的情况,您可以使用一个或多个 elseif 语句。MATLAB 会按顺序检查条件。第一个评估为真的条件,其代码块将被执行,其余结构将被跳过。

if <expression1>
% 如果 expression1 为真则执行
elseif <expression2>
% 如果 expression1 为假且 expression2 为真则执行
else
% 如果所有前面的表达式都为假则执行
end

让我们编写一个脚本,根据数值分数来分配字母等级。

score = 85;
if score >= 90
grade = 'A';
elseif score >= 80
grade = 'B';
elseif score >= 70
grade = 'C';
elseif score >= 60
grade = 'D';
else
grade = 'F';
end
fprintf('A score of %d results in a grade of ''%s''.\n', score, grade);

当 score = 85 时的输出:

A score of 85 results in a grade of 'B'.

您可以使用逻辑运算符创建更复杂的条件:

  • && : 逻辑与
  • || : 逻辑或
  • ~ : 逻辑非
temperature = 25; % 摄氏度
isRaining = false;
if temperature > 20 && ~isRaining
disp('It is a pleasant day for a walk!');
elseif temperature < 5 || isRaining
disp('Better to stay indoors today.');
end

当您需要根据离散值的列表检查单个变量时,switch 语句比冗长的 if...elseif... 链更简洁、更具可读性。

matlab_decisions.htm