Почему else часть моего оператора if else не выполняется? - PullRequest
0 голосов
/ 14 июня 2019

Оператор if else принимает логическое возвращение от вызываемой функции, но истинная часть выполняется, а ложная - нет. Я проверил синтаксис, и он правильный, поэтому я должен что-то упустить.

Я попытался использовать цикл while, но он не сработает, потому что он не позволяет мне что-либо делать, если возвращено значение false.

import UIKit

class ViewController: UIViewController {

    var word: String = ""

    @IBOutlet weak var Label: UILabel!

    //This is the text field
    @IBOutlet weak var textField: UITextField!


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


    @IBAction func wordButtonTapped(_ sender: Any) {
        word = textField.text!
        userInput()

        if true {
            Label.text = "This is a Palindrme."
        } else {
            Label.text = "This is not a Palindrome."
        }
    }

    func userInput() {
        Util.shared.isPalindrome(word: word)
    }
}

Я ожидаю, что текст отобразится в поле моей метки.

Ответы [ 3 ]

2 голосов
/ 14 июня 2019

Ваша функция ничего не возвращает, и вы переходите на if true, что, очевидно, всегда верно (здесь должно быть предупреждение компилятора).

Вам нужно обновить функцию, чтобы она действительно возвращала значение:

func userInput() -> Bool {
    return Util.shared.isPalindrome(word: word)
}

И используйте это значение для оператора if:

if userInput() {
    Label.text = "This is a Palindrme."
} else {
    Label.text = "This is not a Palindrome."
}
2 голосов
/ 14 июня 2019

Это потому, что делает сравнение "верно == верно?" и он всегда будет возвращать true, поэтому никогда не будет входить в остальную часть

1 голос
/ 14 июня 2019

if true условие всегда выполняется. Вам следует изменить метод userInput (), чтобы он возвращал логическое значение, если вы хотите его использовать.

func userInput() -> Bool {
    return Util.shared.isPalindrome(word: word)
}

А затем обработать результат:

if userInput() { 
    // do something 
} else { 
    // do something else 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...