当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

<b>java的逻辑运算符</b>[Java编程]

赞助商链接



  本文“<b>java的逻辑运算符</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
逻辑运算符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() % 100;
    int j = rand.nextInt() % 100;
    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利用于布尔值.与在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,所认为什么还要持续剩余的表达式呢?这样做只会徒劳无益.事实上,“短路”一词的由来正种因于此.假如一个逻辑表达式的全部部份都没必要履行下去,那么潜在的性能晋升将是相当可观的.
  以上是“<b>java的逻辑运算符</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .