知识大全 Java的逻辑运算符

Posted 表达式

篇首语:做人不是一味低调,也不是一味张扬,而是始终如一的不卑不亢。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java的逻辑运算符相关的知识,希望对你有一定的参考价值。

Java的逻辑运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  逻辑运算符AND(&&) OR(||)以及NOT(!)能生成一个布尔值(true或false)——以自变量的逻辑关系为基础 下面这个例子向大家展示了如何使用关系和逻辑运算符   //: Bool java  // Relational and logical operators  import java util *;  public class Bool    public static void main(String[] args)     Random rand = new Random();    int i = rand nextInt() % ;    int j = rand nextInt() % ;    prt( i = + i);    prt( j = + j);    prt( i > j is + (i > j));    prt( i < j is + (i < j));    prt( i >= j is + (i >= j));    prt( i <= j is + (i <= j));    prt( i == j is + (i == j));    prt( i != j is + (i != j));    // Treating an int as a boolean is     // not legal Java  //! prt( i && j is + (i && j));  //! prt( i || j is + (i || j));  //! prt( !i is + !i);    prt( (i < 10) && (j < 10) is "      + ((i < 10) && (j < 10)) );    prt("(i < 10) || (j < 10) is "      + ((i < 10) || (j < 10)) );      static void prt(String s)     System.out.println(s);      ///:~  只可将AND,OR或NOT应用于布尔值。WInGWIT.cOm与在C及C++中不同,不可将一个非布尔值当作布尔值在逻辑表达式中使用。若这样做,就会发现尝试失败,并用一个“//!”标出。然而,后续的表达式利用关系比较生成布尔值,然后对结果进行逻辑运算。  输出列表看起来象下面这个样子:  i = 85  j = 4  i > j is true  i < j is false  i >= j is true  i <= j is false  i == j is false  i != j is true  (i < 10) && (j < 10) is false  (i < 10) || (j < 10) is true  注意若在预计为String值的地方使用,布尔值会自动转换成适当的文本形式。  在上述程序中,可将对int的定义替换成除boolean以外的其他任何主数据类型。但要注意,对浮点数字的比较是非常严格的。即使一个数字仅在小数部分与另一个数字存在极微小的差异,仍然认为它们是“不相等”的。即使一个数字只比零大一点点(例如2不停地开平方根),它仍然属于“非零”值。   1. 短路  操作逻辑运算符时,我们会遇到一种名为“短路”的情况。这意味着只有明确得出整个表达式真或假的结论,才会对表达式进行逻辑求值。因此,一个逻辑表达式的所有部分都有可能不进行求值:  //: ShortCircuit.java  // Demonstrates short-circuiting behavior  // with logical operators.  public class ShortCircuit    static boolean test1(int val)     System.out.println("test1(" + val + ")");    System.out.println("result: " + (val < 1));    return val < 1;      static boolean test2(int val)     System.out.println("test2(" + val + ")");    System.out.println("result: " + (val < 2));    return val < 2;      static boolean test3(int val)     System.out.println("test3(" + val + ")");    System.out.println("result: " + (val < 3));    return val < 3;      public static void main(String[] args)     if(test1(0) && test2(2) && test3(2))     System.out.println("expression is true");    else     System.out.println("expression is false");      ///:~  每次测试都会比较自变量,并返回真或假。它不会显示与准备调用什么有关的资料。测试在下面这个表达式中进行:  if(test1(0)) && test2(2) && test3(2))  很自然地,你也许认为所有这三个测试都会得以执行。但希望输出结果不至于使你大吃一惊:  if(test1(0) && test2(2) && test3(2))  第一个测试生成一个true结果,所以表达式求值会继续下去。然而,第二个测试产生了一个false结果。由于这意味着整个表达式肯定为false,所以为什么还要继续剩余的表达式呢?这样做只会徒劳无益。事实上,“短路”一词的由来正种因于此。如果一个逻辑表达式的所有部分都不必执行下去,那么潜在的性能提升将是相当可观的。 cha138/Article/program/Java/JSP/201311/19578

相关参考

最基本的逻辑关系有哪几种?写出各自的逻辑运算表达式。

  最基本的逻辑关系有三种  (1)“与”逻辑关系:可以表述为:“当有关条件A、B、C都具备时,事件F才能发生。”  “与”逻辑可用“逻辑乘法”表示,写作:F=A?B?C  (2)“或”逻辑关系:可以

PLC是怎样用逻辑运算来执行梯形图程序的?

  “与”、“或”、“非”逻辑运算是数字电路中的概念,在PLC的编程手册中,经常会遇到它们,有的指令用“与”、“或”、“非”命名。“与”、“或”、“非”运算的输入输出可以用以下关系来描述,A.B是输入

PLC是怎样用逻辑运算来执行梯形图程序的?

  “与”、“或”、“非”逻辑运算是数字电路中的概念,在PLC的编程手册中,经常会遇到它们,有的指令用“与”、“或”、“非”命名。“与”、“或”、“非”运算的输入输出可以用以下关系来描述,A.B是输入

知识大全 Java算术运算符

Java算术运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的基本算术运算符与其他

知识大全 java的算术运算符

  Java的基本算术运算符与其他大多数程序设计语言是相同的其中包括加号(+)减号()除号(/)乘号(*)以及模数(%从整数除法中获得余数)整数除法会直接砍掉小数而不是进位  Java也用一种简写形式

知识大全 Java的字串运算符+

Java的字串运算符+  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这个运算符在Java里有一

知识大全 Java的关系运算符

Java的关系运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关系运算符生成的是一个布尔(

知识大全 Java的造型运算符

Java的造型运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  造型(Cast)的作用是与一

知识大全 Java的逗号运算符

Java的逗号运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    在C和C++里逗号不仅作

知识大全 Java中的位移运算符

Java中的位移运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb