MATLAB编程-简介
控制流语句(Control Flow)
IF 语句
if
语句用于在逻辑表达式为真(非 0)时执行代码块。
else
用于表达式为假(0)时执行另一段代码。
语法:
if expression
statements
elseif expression2
statements
else
statements
end
SWITCH 语句
switch
用于根据一个变量的值执行不同的代码块,是多个嵌套 if
的更优替代方式。
语法:
switch variable
case value1
statements(1)
case value2
statements(2)
...
otherwise
statements
end
-
注意:
end
只需要写在整个switch
结构末尾; -
如果写错顺序或多余
end
,MATLAB 会提示case
使用不合法; -
otherwise
是默认分支,匹配不到任何case
时执行。
不像 C/C++/Java,MATLAB 的
switch
不会“穿透”执行多个 case,每次只执行一个匹配的分支。
TRY / CATCH 语句
try/catch
结构用于捕获运行时错误,避免程序崩溃。
语法:
try
statements
catch
statements
end
-
try
中的代码总会执行,直到遇到错误; -
若发生错误,将跳转执行
catch
中的代码; -
若无错误,
catch
不会执行; -
常用于调试、异常捕获等场景。
FOR 循环
for
循环用于重复执行指定次数的代码。
语法:
for iterator = start:step:endvalue
statements
end
-
iterator
从start
开始,每次增加step
,直到超过endvalue
; -
如果省略
step
,默认为 1:
for ii = 1:3
statements
end
以上代码将执行 statements
三次。
WHILE 循环
while
循环在条件为真(非 0)时持续执行。
语法:
while condition
statements
end
-
循环结束条件需在循环体内更新;
-
忘记更新条件会导致死循环!
BREAK、CONTINUE 与 RETURN
-
break
:立即跳出当前循环,继续执行循环之后的代码; -
continue
:跳过本次循环剩余语句,进入下一次循环; -
return
:直接退出函数,立即返回当前值。
函数中的 RETURN 示例
function output = controlTest(doWhat)
switch doWhat
case 1
output = -1;
return;
case 2
output = 3;
end
output = output + 4;
end
-
执行
controlTest(1)
返回-1
(因提前 return); -
执行
controlTest(2)
返回7
(3 + 4);
⚠️ 注意:若在
return
前未定义输出变量,将导致错误,请谨慎使用。