Java Top.

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程

1.介绍

在Java的如果 - else陈述当表达式是时,我们可以采取某种行动真的,以及替代方案错误的。在本教程中,我们将了解如何使用的方式扭转逻辑金宝搏官网188be不是操作员。

2.如果是t

让我们从简单开始如果别的陈述:

Boolean IsValid = True;if(是isvalid){system.out.println(“有效”);} else {system.out.println(“无效”);}

如果我们的计划只需要处理负面情况,该怎么办?我们将如何重新写下上面的例子?

一个选项是简单地删除代码如果堵塞:

Boolean IsValid = True;if(是isvalid){} else {system.out.println(“无效”);}

但是,一个空的如果块看起来可能是不完整的代码,似乎只处理了否定条件的长啰嗦方式。如果我们的逻辑表达式评估,我们可能会尝试测试错误的

Boolean IsValid = True;if(isvalid == false){system.out.println(“无效”);}

上述版本相对容易阅读,但如果逻辑表达式更复杂,则可能更难。java为我们提供了替代方案,以宗旨不是操作员:

Boolean IsValid = True;if(!iSvalid){system.out.println(“无效”);}

3.不是操作员

不是操作员是一个逻辑运算符,由Java表示!!象征。它是一个机构运算符,它将布尔值作为其操作数。不是操作员通过反转(或否定)其操作数的价值来工作

3.1。应用这一点不是运营商到布尔值

当应用于布尔值时,不是操作员转弯真的错误的错误的真的

例如:

system.out.println(!True);//打印false system.out.println(!false);//打印true system.out.println(!! false);//打印false.

3.2。应用这一点不是运营商到布尔表达式

自从不是是一位机构,当你想要的时候不是表达的结果,您需要围绕括号中的表达得到正确的答案。首先评估括号中的表达式,然后评估不是操作员反转其结果。

例如:

int count = 2;system.out.println(!(count> 2));//打印true system.out.println(!(count <= 2));//打印false.
布尔x = true;布尔y = false;system.out.println(!(x && y));//打印true system.out.println(!(x || y));//打印false.

我们应该注意到否定表达式时,de Morgan的法律参加进来。换句话说,表达式中的每个术语被否定,并且运算符被反转。这可以帮助我们简化更难阅读表达式。

例如:

!(x && y)与!x ||!y!(x || y)与!x &&!y!(a <3 && b == 10)与> = 3 ||B!= 10

一些常见的陷阱

使用不是操作员有时可能会损害我们代码的可读性。否定的否定能够比积极更难理解。让我们来看看一些例子。

4.1。双重消极

因为这不是操作员是一个否定运算符,使用它具有否定名称的变量或函数,可能导致难以读取代码。这类似于自然语言,通常认为双重否定难以理解。

例如:

if(product.isactive()){...}

读得比更好

如果(!product.isnotactive()){...}

虽然我们的API可能无法提供活跃方法,我们可以创建一个以帮助可读性。

4.2。复杂条件

不是操作员有时可以让已经复杂的表达更难以阅读和理解。发生这种情况时,我们可以通过反转条件或通过提取方法来简化代码。让我们来看看由此复杂的条件的一些例子不是操作员以及如何通过逆转条件来简化它们:

if(!true)//复杂的if(false)//简化了if(!mydate.onorafter(另一个))//复杂if(mydate.before(另一个))//简化(!(a> = b))//复杂if(a  = 10 ||总> = 1000))//复杂if(count <10 && total <1000)//简化

结论

在本文中,我们讨论了不是操作员以及如何与布尔值,表达式和in一起使用如果别的陈述。

我们还看着一些常见的陷阱,由他们的反向写入表达和如何解决它们而引起的。

一如既往的来源本文中使用的示例的代码是在GitHub上提供

Java底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
评论在本文上关闭!