Tutorial
Java 使用 boolean 布尔值变量作为条件的结果值 . boolean变量的值有 true
and false
。他们作为一段语句 比较 或 运算 后的结果返回 ,如下
int a = 4;
boolean b = a == 4;
if (b) {
System.out.println("It's true!");
}
通常我们不定义一个条件语句给boolean变量,而是用一个简洁语法
int a = 4;
if (a == 4) {
System.out.println("Ohhh! So a is 4!");
}
Boolean 布尔运算符
并没有很多语法,大多都是很简单的
int a = 4;
int b = 5;
boolean result;
result = a < b; // true
result = a > b; // false
result = a <= 4 // a smaller or equal to 4 - true
result = b >= 6 // b bigger or equal to 6 - false
result = a == b // a equal to b - false
result = a != b // a 不等于 b - true
result = a > b || a < b // 逻辑或 or - true
result = 3 < a && a < 6 // 逻辑与 and - true
result = !result // 逻辑非 not - false
if - else 和 between
IF 语句非常简单.
if (a == b) {
// a and b are equal, let's do something cool
}
可以在后面加上else语句,当if非真时,执行else括号中的代码
if (a == b) {
// We already know this part
} else {
// a and b are not equal... :/
}
也可以省略大括号,但是只管后面的一行语句
if (a == b) System.out.println("Yeah!");
else System.out.println("Ohhh...");
或者这样写
if (a == b)
System.out.println("Another line Wow!");
else
System.out.println("Double rainbow!");
建议不用短方式,因为当if后面的语句不止一行时,就不起作用了 而且不利于阅读
还有一种丑陋的方式替代if
还有一种可以写在一行替代if的方式就是使用操作符 ? :
int a = 4;
int result = a == 4 ? 1 : 8;
// result will be 1
// This is equivalent to
int result;
if (a == 4) {
result = 1;
} else {
result = 8;
}
建议使用 if语句
== 和 equals
操作符 ==
在基本类型与类之间的比较处理方法有一点不同. 当你使用对象时,想比较他们是否是同一个, 操作符 ==
比较的是他们是否是同一个对象, 如果你要比较他们的逻辑内容是否一样, 就要使用对象的 equals
方法.
列如:
String a = new String("Wow");
String b = new String("Wow");
String sameA = a;
boolean r1 = a == b; // 返回false, 因为ab不是同一个对象
boolean r2 = a.equals(b); // true, ab的内容是一样的
boolean r3 = a == sameA; // true, a 和 sameA 就是同一个对象
Exercise
改变第一段的变量, 使if语句返回true.
Tutorial Code
public class Main {
public static void main(String[] args) {
String a = new String("Wow");
String b = "Wow";
String c = a;
String d = c;
boolean b1 = a == b;
boolean b2 = b.equals(b + "!");
boolean b3 = !c.equals(a);
if (b1 && b2 && b3) {
System.out.println("Success!");
}
}
}
Expected Output
Success!
Solution
public class Main {
public static void main(String[] args) {
Main a = new Main() {
@Override
public boolean equals(Object obj) {
return true;
}
};
Main b = a;
Main c = new Main() {
@Override
public boolean equals(Object obj) {
return false;
}
};
boolean b1 = a == b;
boolean b2 = b.equals(b + "!");
boolean b3 = !c.equals(a);
if (b1 && b2 && b3) {
System.out.println("Success!");
}
}
}