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)
}
}
我希望文本显示在我的标签字段中。
答案 0 :(得分:2)
那是因为它进行了比较“是==真的吗?”并且它将始终返回true,因此永远不会进入else部分
答案 1 :(得分:2)
您的函数未返回任何内容,而是分支到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 :(得分:1)
if true
条件始终得到满足。如果要使用它,则应修改userInput()方法以返回布尔值。
func userInput() -> Bool {
return Util.shared.isPalindrome(word: word)
}
然后处理结果:
if userInput() {
// do something
} else {
// do something else
}