荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: heiheihei (瓦尔特), 信区: Java
标  题: java手记(3)--短路
发信站: 荔园晨风BBS站 (Fri Nov  9 11:42:37 2001), 转信

java手记(3)--短路
                                         瓦尔特

java的逻辑运算有时会出现短路的现象
例子程序:
//ShortCircuit.java
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("test1("+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");
    }
}
结果:C:\myjava>javac ShortCircuit.java
C:\myjava>java ShortCircuit
test1(0)
result: true
test2(2)
result: false
expression is false
由此可以看出,布尔运算并没有完全执行结束就得到了式子的结果.因为只要与运算中有
一个项是0,则式子的结果就一定为0.这就是逻辑运算重的短路现象.这对java程序的性能
潜在的提升是很大的.
                                          瓦尔特学自thinking in java
--

世界上没有任何话能说服你,除非它是你心中的那一句。

世界上没有任何人能打动我,除非她是我心中的那一个。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 202.118.1.82]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店