控制流语句(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
  • iteratorstart 开始,每次增加 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 前未定义输出变量,将导致错误,请谨慎使用。



Last modified: Wednesday, 16 April 2025, 11:48 AM