MATLAB - end 语句



end 是一个用于终止代码块的关键字。end 关键字可以在 for 循环、while 循环、if 语句、switch 语句、try 和 parfor 语句中使用。

end 语句与最近的未配对的 for、if、while、try、switch、parfor 语句配对。

让我们看看上面提到的每个循环和语句中 end 语句的语法。

for 循环中 end 语句的语法

for variable = startValue : endValue
   % Code to be executed in each iteration
end

在 for 循环中,"end" 语句用于标记循环块的结束,指示循环代码执行应停止的位置。

嵌套 for 循环内 end 语句的语法

for outer_loop_variable = outer_loop_start:outer_loop_end
   % Outer loop code block
   
   for inner_loop_variable = inner_loop_start:inner_loop_end
      % Inner loop code block
   end
   
   % Code after the inner loop
end

在嵌套 for 循环中,"end" 语句用于指示内部循环代码块的结束,为嵌套结构提供必要的闭包。嵌套 for 循环包含一个循环在另一个循环内,允许您执行具有更复杂迭代的重复任务。

while 循环内 end 语句的语法

while condition
   % Code to be executed
end

在 while 循环中,"end" 语句用于标记循环块的结束,定义只要指定条件为真就会重复执行的代码范围。

嵌套 while 循环内 end 语句的语法

while outer_loop_condition
   % Outer loop code block
   
   while inner_loop_condition
      % Inner loop code block        
   end
   
   % Code after the inner loop
  
end

在嵌套 while 循环中,"end" 语句用于指示内部循环代码块的结束,并定义内部和外部循环的边界。

if 语句内 end 语句的语法

if condition
   % code to be executed if the condition is true
end

在 if 语句中,"end" 语句用于指示当指定条件为真时应执行的代码块的结束。

嵌套 if 语句内 end 语句的语法

if condition1
   % Code to execute if condition1 is true
   
   if condition2
      % Code to execute if condition2 is true
   else
      % Code to execute if condition2 is false
   end
    
else
   % Code to execute if condition1 is false
   
   if condition3
      % Code to execute if condition3 is true
   else
      % Code to execute if condition3 is false
   end
    
end

在嵌套 if 语句中,"end" 语句用于标记每个 if-else 块的结束,定义嵌套结构的边界。

switch 语句内 end 的语法

switch expression
   case caseExpression1
      % Code to be executed for case 1
   case caseExpression2
      % Code to be executed for case 2
   ...
   case caseExpressionN
      % Code to be executed for case N
   otherwise
      % Code to be executed if none of the cases match
end

在 switch 语句中,"end" 语句用于标记整个 switch 块的结束,指示 switch 语句的边界。

嵌套 switch 语句内 end 语句的语法

switch outerExpression
   case outerCase1
      % Outer case 1 code
      switch innerExpression
         case innerCase1
            % Inner case 1 code
         case innerCase2
            % Inner case 2 code
         ...
      end
   case outerCase2
      % Outer case 2 code
      switch innerExpression
         case innerCase1
            % Inner case 1 code
         case innerCase2
            % Inner case 2 code
         ...
      end
   ...
end

在嵌套 switch 语句中,"end" 语句用于标记内部和外部 switch 块的结束,定义嵌套结构的边界。

try 语句内 end 语句的语法

try
   statements
catch exception
   statements
end

在 try-catch 语句中,"end" 语句用于标记 "try" 块的结束,指示正在处理潜在异常的代码的边界。

并行 for 循环(也称为 parfor)内 end 语句的语法

parfor loopvar = initval:endval; statements; end

在并行 for 循环(也称为 "parfor" 循环)中,"end" 语句用于标记循环块的结束,就像在常规 for 循环或其他控制结构中一样。

让我们尝试一些示例来了解 end 语句的作用。

示例 1

这里我们将使用 for 循环和其中的 end 语句。

sum = 0;
for i = 1:5
   sum = sum + i; 
end
disp(sum);

循环计算前五个数字的总和。

"end" 语句定义了 for 循环的范围,并确保循环块内的代码对于循环变量 "i" 的每次迭代都重复执行。

在 matlab 中执行后,输出为 -

>> sum = 0;
for i = 1:5
   sum = sum + i; 
end
disp(sum);

   15

示例 2

在这个例子中,我们将看到 try/catch 块内 end 语句的工作原理。

try
   x = 10 / 0; 
catch
   disp("An error occurred: Division by zero");
end

在上面的例子中,"try" 块尝试除法运算 "x = 10 / 0",这是除以零,这会抛出一个错误。当 MATLAB 在 try 块中遇到除以零错误时,它会立即跳转到 "catch" 块以处理异常。"catch" 块在 try 块中发生错误时执行。在这种情况下,它只是使用 "disp" 显示消息 "发生错误:除以零"。"catch" 块后面的 "end" 语句标记了 catch 块的结束,确保代码执行在 try-catch 结构之后继续。

在 matlab 中执行后,输出为

>> try
   x = 10 / 0; 
catch
   disp("An error occurred: Division by zero");
end

示例 3

在这个例子中,我们将使用带 end 语句的 parfor 并行 for 循环。

parfor i = 1:5
   result(i) = i * 2;
end
disp(result);

"parfor" 循环使用 "parfor" 关键字,表示循环迭代可以并行执行。循环变量 "i" 从 1 到 5 取值,如范围 "1:5" 所指定。"end" 语句标记了 parfor 循环块的结束,定义了每个迭代可以独立执行且可能并行执行的代码范围。

在循环块内,每个迭代都会计算当前索引 "i" 的结果,并将其存储在对应索引处的 "result" 数组中。生成的数组 "result" 将为 [2, 4, 6, 8, 10],包含每个迭代的计算值。

在 matlab 中执行后,输出为 -

>> parfor i = 1:5
   result(i) = i * 2;
end
disp(result);

   2     4     6     8    10
广告