和 swift 中的 (&&) 逻辑
and (&&) logic in swift
我对 swift 中的 (&&) 逻辑有疑问,我不明白为什么编译器将 'and' 逻辑作为 'or' 逻辑处理,我输入一个字段并他不理其他人
if (self.txtAddressNickname.text!.isEmpty == true) && (self.txtArea.text!.isEmpty ==
true) && (self.txtHouseNo.text.isEmpty == true) && (self.txtAddressType.text!.isEmpty
== true) && (self.txtStreet.text!.isEmpty == true) && (self.txtHouseNo.text!.isEmpty
== true) && (self.txtMobileNo.text!.isEmpty == true){
// alert
}
您想在任何字段为空时显示警报,对吗?
您需要 'or',而不是 'and'。
if txtAddressNickname.text!.isEmpty ||
txtArea.text!.isEmpty ||
txtHouseNo.text.isEmpty ||
txtAddressType.text!.isEmpty ||
txtStreet.text!.isEmpty ||
txtHouseNo.text!.isEmpty ||
txtMobileNo.text!.isEmpty {
// alert
}
我也对你的代码进行了一些整理,以便于阅读。
&&
的工作方式如下:
如果途中的 1 个条件给出 false
,编译器将不会检查表达式中的进一步条件。
类似地,||
的工作方式类似于,
如果途中的 1 个条件给出 true
,编译器将不会检查表达式中的进一步条件。
因此,在您的表达式中,任何初始 textField
都可能为空,因此不会进一步检查。
AND 和 OR 逻辑在所有编程语言中都是相同的。
A and B只有当A为真且B为真时才为真
如果 A 为真或 B 为真或两者都为真,则 A 或 B 为真。
检查下图,注意 0 为假,1 为真:
我对 swift 中的 (&&) 逻辑有疑问,我不明白为什么编译器将 'and' 逻辑作为 'or' 逻辑处理,我输入一个字段并他不理其他人
if (self.txtAddressNickname.text!.isEmpty == true) && (self.txtArea.text!.isEmpty ==
true) && (self.txtHouseNo.text.isEmpty == true) && (self.txtAddressType.text!.isEmpty
== true) && (self.txtStreet.text!.isEmpty == true) && (self.txtHouseNo.text!.isEmpty
== true) && (self.txtMobileNo.text!.isEmpty == true){
// alert
}
您想在任何字段为空时显示警报,对吗?
您需要 'or',而不是 'and'。
if txtAddressNickname.text!.isEmpty ||
txtArea.text!.isEmpty ||
txtHouseNo.text.isEmpty ||
txtAddressType.text!.isEmpty ||
txtStreet.text!.isEmpty ||
txtHouseNo.text!.isEmpty ||
txtMobileNo.text!.isEmpty {
// alert
}
我也对你的代码进行了一些整理,以便于阅读。
&&
的工作方式如下:
如果途中的 1 个条件给出 false
,编译器将不会检查表达式中的进一步条件。
类似地,||
的工作方式类似于,
如果途中的 1 个条件给出 true
,编译器将不会检查表达式中的进一步条件。
因此,在您的表达式中,任何初始 textField
都可能为空,因此不会进一步检查。
AND 和 OR 逻辑在所有编程语言中都是相同的。
A and B只有当A为真且B为真时才为真
如果 A 为真或 B 为真或两者都为真,则 A 或 B 为真。
检查下图,注意 0 为假,1 为真: