和 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 为真: