Измените значение переменной из условия if в Swift - PullRequest
0 голосов
/ 04 мая 2020

У меня есть al oop, где переменная с именем e выбрасывает случайные числа в диапазоне от 0 до 5. У меня есть другая переменная с именем eValue, которая только инициализируется. Я хотел бы, чтобы, когда моя переменная e имела значение 0, моя переменная eValue равнялась 1, и значение, которое имеет i, печаталось, когда это происходит.

При этом я надеюсь, что если l oop повторяется и 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 не получает значение что я даю это внутри условного.

Как я могу решить это?

1 Ответ

2 голосов
/ 04 мая 2020

Дело не в том, что eValue не устанавливается, а в том, что вы сбрасываете eValue каждый раз, когда запускаете l oop.

. Вы нажимаете свой оператор if, но затем немедленно сбрасываете eValue, если только случается, что последний ударил l oop.

. Исправление - взять инициализацию eValue из l oop:

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.")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...