0
func nonZeroAnswer (a : Double, b : Double) -> Bool {

       if a / b == 0 { return true}  else {return false}
 }

nonZeroAnswer (5, 0)   //This returns false

if !nonZeroAnswer(2, 2) {
     print("This is a Zero Answer")
}

我一遍又一遍地阅读苹果文档,知道 Not 运算符是如何工作的,以及它如何将布尔值反转为相反的值,但我不知道如何将它应用于更复杂的代码场景,例如 if 语句、函数等.我什至不知道我是否正确地编写了这个基本程序,我对如何编写这样一个基本程序感到困惑。如果这看起来像一个小问题,我很抱歉,但我已经阅读了苹果文档,并且正在研究一本应该是为初学者准备的速成书,我看过许多 youtube 视频,但无法使用除普通 trueValue = True ........ !trueValue // 使其为 false 之外的其他场景中的 Not 运算符......我确实理解,但此外,就像在这个程序中一样,我会感到困惑

4

2 回答 2

0

当您在控制语句的上下文中使用布尔表达式时,无论是否带有!运算符,它们都保持不变,例如if,while等。唯一的区别是控制语句根据评估结果执行的操作。

推理布尔表达式的一种方法是独立于上下文来考虑它们。例如,您可以查看表达式

!nonZeroAnswer(2, 2)

并看到它是什么true时候,反之亦然。之后,您可以将结果“插入”到or或任何上下文中,例如,说nonZeroAnswer(2, 2)falseifwhile

if !nonZeroAnswer(2, 2) {
     print("This is a Zero Answer")
}

nonZeroAnswer(2, 2)返回时打印一些东西false

注意:您可以返回布尔表达式本身,而不是编写返回trueor的条件,因为它具有相同的值:false

func nonZeroAnswer (a : Double, b : Double) -> Bool {
    return a / b == 0
}

a / b == 0已经是一个布尔表达式,true当除以a产生b零时返回,所以不需要if在它周围加上条件。

于 2016-02-22T20:43:34.740 回答
0

它的基本编码。!符号只是反转布尔值考虑以下两种情况:-

nonZeroAnswer(2,2)  
//returns false as (2/2 = 1) != 0
//Hence !nonZeroAnswer(2,2) = !false = true
//Hence "This is a zero answer" will be printed in this case as the condition for if block is true

nonZeroAnswer(0,3)
//returns true as (0/3 = 0) == 0
//Hence !nonZeroAnswer(0,3) = !true = false
//Hence "This is a zero answer" will not be printed as the condition for if block is false. So wont enter the block.
于 2016-02-22T21:08:13.670 回答