带有双条件和 || 的 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 逻辑运算符
&&
和||
是左结合的,意思是 具有多个逻辑运算符的复合表达式计算 首先是最左边的子表达式。
您推荐什么解决方案?
【问题讨论】:
改用&&
我认为您正在寻找 while S < 10 && 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 中的逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章