带有双条件和 || 的 While 循环Swift 中的逻辑运算符

Posted

技术标签:

【中文标题】带有双条件和 || 的 While 循环Swift 中的逻辑运算符【英文标题】:While loop with double conditional and || logical operator in Swift 【发布时间】:2020-05-04 22:50:47 【问题描述】:

我有一个 While 循环,其条件限制它只能重复 10 次,每次重复一个循环时,如果 D 为 0,则常量 D 会生成一个 0 到 24 范围内的随机数,我将变量dIsZero 更改为true 并打印D 第一次为0 的循环。

var S = 0  
var dIsZero = false

while S < 10 || dIsZero == false 
    S += 1
    let D = Int.random(in: 0...24)
    if dIsZero == false && D == 0 
        dIsZero = true
        print("D = 0 in a cycle \(S)/10")
    

我的问题是我希望 While 循环也可以在 10 个循环完成之前D 为 0 时结束。我已经尝试输入逻辑运算符||,但它不起作用,我得到以下结果:

超过 10 个周期,直到 D 为 0。例如:84 个周期。

如果 D 在 10 个周期之前为 0,则循环在 10 个周期之前不会停止 到达。

我阅读了有关逻辑运算符的内容并发现了以下内容:

Swift 逻辑运算符 &amp;&amp;|| 是左结合的,意思是 具有多个逻辑运算符的复合表达式计算 首先是最左边的子表达式。

您推荐什么解决方案?

【问题讨论】:

改用&amp;&amp; 我认为您正在寻找 while S &lt; 10 &amp;&amp; dIsZero == false,以便在 S 小于 10 时继续循环,并且 dIsZero 不正确(即为假) 【参考方案1】:

你只需要打破循环

while S < 10  
    S += 1
    let D = Int.random(in: 0...24)
     if D == 0 
       print("D = 0 in a cycle \(S)/10")
        break
     

【讨论】:

这是更好的解决方案。 如果您有任何疑问,请告诉我 我没有任何疑问。我是说你的解决方案更好:-)我赞成。

以上是关于带有双条件和 || 的 While 循环Swift 中的逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章

带有最小和最大条件Python的while循环

布尔条件内带有函数的while循环

带有条件的 Bash 单行 while 循环的语法

在带有条件语句的 while 循环中放置错误消息

Linux Shell:Shell循环语句

Swift语言基础 - for循环与可选值