繁体   English   中英

从 Swift 中的 if 条件中更改变量的值

[英]Change the value of a variable from within a if conditional in Swift

我有一个循环,其中一个名为e的变量会抛出 0 到 5 范围内的随机数。我还有另一个名为eValue的变量,它只被初始化。 我希望当我的变量e的值为 0 时,我的变量eValue为 1,并且在发生这种情况时打印具有i的值。

有了这个,我希望如果循环重复并且e再次获得值 0,它不会改变i的打印值。

var n = 1...25
for i in n {
    let e = Int.random(in: 0...5)
    var eValue : Int? 
    if e == 0 && eValue != 1 { 
        eValue = 1
        print(i)
    } else {
        print("Variable 'e' has no value of 0 and 'eValue' already has a value equal to 1.")
    }
}

我的问题是eValue没有获得我在 if 条件中给出的值。

我该如何解决?

不是 eValue 没有设置,而是因为每次运行循环时都在重置 eValue。

您正在点击 if 语句,但随后立即重置 eValue,除非它恰好在最后一个循环中命中。

解决方法是使 eValue 的初始化脱离循环:

var n = 1...25
var eValue : Int?
for i in n {
    let e = Int.random(in: 0...5)
    if e == 0 && eValue != 1 {
        eValue = 1
        print(i)
    } else {
        print("Variable 'e' has no value of 0 and 'eValue' already has a value equal to 1.")
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM