Объединить оператор if и для l oop так, чтобы l oop выполнялся только один раз за каждое выполнение оператора if в swift - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь понять swift и поэтому пытаюсь придумать простые игры для командной строки: в этой игре игрок должен угадать секретное слово в течение 6 попыток, набирая что-то в командной строке, но каждый раз, когда он его получает неправильно, оператор печатает количество его неправильных попыток:

let response = readLine()

if response != "secret word" {
    for n in 1...6 {
        print(n)
    }
}
else {
        print("you are right!")
    }

Теперь я знаю, что мой код будет печатать все строки, когда условие не выполнено, но я ищу способ печатать только один элемент из четырех l oop для каждого оператора if последовательно.

1 Ответ

0 голосов
/ 05 апреля 2020

Я думаю, что некоторое время l oop работает довольно хорошо. Может быть, что-то вроде этого:

print("Welcome to the input game!\n\n\n\n")

var remainingTries = 5

let dictionary = ["apple", "grape", "pear", "banana"]
let secretWord = dictionary.randomElement()

print("Please guess a fruit")

while remainingTries > 0 {
    remainingTries -= 1
    let response = readLine()
    if response == secretWord {
        print("You got it!")
        remainingTries = 0
    } else if remainingTries <= 0 {
        print("Too bad, you lose!")
        remainingTries = 0
    } else {
        print("Incorrect. Tries remaining: \(remainingTries)")
    }
}
...