EDA365电子论坛网

标题: 如果Matlab在if语句中加入break,对条件会有什么影响吗?哪位大神这样操作过,简单... [打印本页]

作者: uiabluqp    时间: 2020-3-27 14:12
标题: 如果Matlab在if语句中加入break,对条件会有什么影响吗?哪位大神这样操作过,简单...
如果Matlab在if语句中加入break,对条件会有什么影响吗?哪位大神这样操作过,简单介绍一下吧+ w; L  b( r# ?3 \$ G

作者: ExxNEN    时间: 2020-3-27 18:16
if通常是不需要“跳出”的。9 I( J; y& W9 M1 G. y" \

# F6 Z; \4 x9 o1 }假设我们有一个能跳出if的语句叫breakif
9 _  C' }2 C; Q) K9 l; o那么如果你的程序像下面这种形式, }6 M* L! L! @
if  a* j3 x1 R8 J8 v" T9 k+ p
  statement 1;
+ `0 {3 ?; s* J. w/ n, e# l" l* N  breakif;: A/ f3 @% O% @7 F5 V& W
  statement 2;  
$ H' n0 T- ?9 |, C  ?else b. N& v0 L( ]* r$ b) p" I5 J
end% ~& E5 B6 U% r1 z, t
那么statement2在这里就是没有意义的,因为永远执行不到。2 g2 X6 \6 f  }

0 `2 H0 @2 L7 G% }8 s而你如果删掉statement2,写成
) n" g% j5 A4 i/ D! yif  a
) n4 W5 f9 R$ G' C, i" {6 ?6 {* {  statement 1;) O* t9 T. {- Q/ R, u
  breakif;  
( \2 t. u7 `0 Z# j* ]# W& ^else b2 {0 T. `- `! g5 G; P
end
! I& O$ q; L  L4 {) H: ^那么breakif就是多余的,因为执行完statement1时,本来就已经退出了if。
3 D. G; E, M8 F" ~- p& O- z' ~$ Z% a7 g/ b% m% V7 h
所以,如果你发现自己需要使用这个breakif语句,那么首先应该考虑一下自己的程序的结构是不是可以改进一下。; N" @8 m* @/ m+ f1 g: R2 ^

' l% y% Y6 q3 h# @另外,break的作用是结束(或称为“跳出”)“当前层循环”,使得下一条被执行的语句是该循环之后的第一条语句。8楼上提到的“大循环”这个词估计指的是相同的意思,但是在多层循环的情况,这个词可能会让人误解为“最外层循环”(最大的循环)。
作者: NNNei256    时间: 2020-3-27 18:18
退出当前循环或条件语句,与continue对比理解,思路会更清晰。
作者: yin123    时间: 2020-3-27 18:18
似乎brrak只跳出最近的for循环和while循环吧!!!楼上两位!




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2