控制程序流程

2014-11-24 02:25:20 · 作者: · 浏览: 0

1、使用java运算符
+、-、*、\、=几乎所有的运算符只能操作主类型,唯一例外的是“=”“==”“!=”能够操作主类型,string支持“+”“+=”
2、赋值
对主数据类型的赋值是非常直接的,由于主类型容纳了实际的值,而并非指向实际值的句柄,所以在对象赋值的时候,将一个值赋值到另一个地方,假设主类型a=b,若修改了a,b值并不会受到影响;
若对象赋值的时候,则发生了变化,对象之间的操作实际上是句柄的操作,对象赋值,将一个句柄赋值到另一个地方,C=D,若c变化,d也会变化;
3、 关系运算符
关系运算符生成的是一个“布尔”(Boolean)结果。它们评价的是运算对象值之间的关系。若关系是真实的,关系表达式会生成true(真);若关系不真实,则生成false(假)。关系运算符包括小于(<)、大于(>)、小于或等于(<=)、大于或等于(>=)、等于(==)以及不等于(!=)。等于和不等于适用于所有内建的数据类型,但其他比较不适用于boolean类型。
4、逻辑运算符
逻辑运算符AND(&&)、OR(||)以及NOT(!)能生成一个布尔值(true或false)——以自变量的逻辑关系为基础。下面这个例子向大家展示了如何使用关系和逻辑运算符。
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结果。

本文出自“赵志军的博客”