条件语句
Java使用布尔变量来评估条件。布尔值true
和false
当表达式进行比较或评价被返回。例如:
int a = 4;boolean b = a == 4;if (b) { System.out.println("It's true!");}
当然我们通常不会将条件表达式赋给布尔值,我们只使用短版本:
int a = 4;if (a == 4) { System.out.println("Ohhh! So a is 4!");}
布尔运算符
条件语句中没有那么多运算符可用,而且大多数运算符都非常紧张:
int a = 4;int b = 5;boolean result;result = a < b; // trueresult = a > b; // falseresult = a <= 4; // a smaller or equal to 4 - trueresult = b >= 6; // b bigger or equal to 6 - falseresult = a == b; // a equal to b - falseresult = a != b; // a is not equal to b - trueresult = a > b || a < b; // Logical or - trueresult = 3 < a && a < 6; // Logical and - trueresult = !result; // Logical not - false
if – else和之间
java中的if,else语句非常简单。
if (a == b) { // a and b are equal, let's do something cool}
我们还可以在if之后添加else语句,如果条件不正确则执行某些操作
if (a == b) { // We already know this part} else { // a and b are not equal... :/}
if – else语句不必与{}有几行,如果可以在一行中使用,或者没有{},则对于单行语句。
if (a == b) System.out.println("Another line Wow!");else System.out.println("Double rainbow!");
尽管此方法可能有助于通过使用更少的行来缩短代码,但我们强烈建议初学者不要使用此简短版本的语句,并始终使用带有{}的完整版本。这适用于可以缩短为单行的所有语句(for,while等)。
还有另一种方法可以使用运算符写一行if – else语句吗?:
int a = 4;int result = a == 4 ? 1 : 8;// result will be 1// This is equivalent toint result;if (a == 4) { result = 1;} else { result = 8;}
同样,我们强烈建议初学者不要使用此版本的if。
==和等于
运算符==
在对象上的工作方式与基元的工作方式略有不同。当我们使用对象并想要检查它们是否相等时,操作员==
会说它们是否相同,如果要检查它们是否在逻辑上相等,则应该equals
在对象上使用该方法。例如:
String a = new String("Wow");String b = new String("Wow");String sameA = a;boolean r1 = a == b; // This is false, since a and b are not the same objectboolean r2 = a.equals(b); // This is true, since a and b are logically equalsboolean r3 = a == sameA; // This is true, since a and sameA are really the same object