【问题标题】:Multiple while loop conditions多个while循环条件
【发布时间】:2015-05-04 18:35:39
【问题描述】:

这是我的示例代码,用于研究如何在满足三个条件中的任何一个时结束 while 循环。

我希望代码在 n = 100 时结束,但它在 n = 301 时结束。我怎样才能让它在n=100 结束?

clear all; close all;
n = 0;
R = 0; A = 0; T = 0;    

while (R~=1) || (A~=1) || (T~=1)     
    if n == 100
        R = 1;
    end        
    if n == 200
        A = 1;
    end 
    if n == 300
        T = 1;
    end
    n=n+1;
end

【问题讨论】:

  • 不觉得 OR & AND 是错误的方式吗?

标签: matlab while-loop


【解决方案1】:

|| 表示或 (with short circuiting)。这意味着在所有条件都为假之前,您的循环不会退出。

您想使用 AND,即&&。这意味着当至少有一个条件为假时循环退出。

ALSO(来自下面的 cmets):

当前,当循环结束时,n 的值为 101(因为循环底部的 n=n+1)。如果 n 的值为 100 很重要,那么您可以将 break (info here) 插入到 if 正文中,以便在 n = 100 时退出循环。

【讨论】:

  • 还可能值得注意的是,当中止条件被评估为真时,循环计数器将位于 101。
  • 第二次索贝克:这只是部分答案。也许建议break
猜你喜欢
  • 2011-11-02
  • 2015-12-16
  • 1970-01-01
  • 2022-10-14
  • 2016-04-08
  • 2016-10-08
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多