Booleans and selection: if/else and logic · Boolean và selection: if/else và logic
Booleans and selection
- A boolean is a value that is either
trueorfalse. - Programs make choices by testing a boolean and running different code.
- In this lesson you learn
if/else if/elseand how to build conditions.
Boolean và điều kiện
- Một boolean (giá trị logic) là một giá trị chỉ có thể là
truehoặcfalse. - Chương trình đưa ra lựa chọn bằng cách kiểm tra một giá trị boolean và chạy mã khác nhau.
- Trong bài học này, bạn sẽ học về
if/else if/elsevà cách xây dựng các điều kiện.
Relational operators
- These compare two values and give a
boolean:<less than,>greater than<=less or equal,>=greater or equal==equal,!=not equal
- Note:
=puts a value into a variable, but==tests if two values are equal.
Toán tử quan hệ
- Những toán tử này so sánh hai giá trị và trả về một
boolean:<nhỏ hơn,>lớn hơn<=nhỏ hơn hoặc bằng,>=lớn hơn hoặc bằng==bằng,!=không bằng
- Lưu ý:
=gán một giá trị vào biến, nhưng==kiểm tra xem hai giá trị có bằng nhau hay không.
public class Main {
public static void main(String[] args) {
int score = 75;
System.out.println(score > 50); // true
System.out.println(score == 100); // false
System.out.println(score != 75); // false
}
}
if / else if / else
ifruns a block only when its condition istrue.else ifchecks another condition when the ones before werefalse.elseruns when none of the conditions were true.
if / else if / else
ifchỉ chạy một khối mã khi điều kiện của nó làtrue.else ifkiểm tra một điều kiện khác khi các điều kiện trước đó làfalse.elsechạy khi không có điều kiện nào đúng.
public class Main {
public static void main(String[] args) {
int n = -4;
if (n > 0) {
System.out.println("positive");
} else if (n < 0) {
System.out.println("negative");
} else {
System.out.println("zero");
}
}
}
Logical operators
&&means and: true only when both sides are true.||means or: true when at least one side is true.!means not: it flipstruetofalseandfalsetotrue.
Toán tử logic
&&có nghĩa là and (và): chỉ đúng khi cả hai vế đều đúng.||có nghĩa là or (hoặc): đúng khi ít nhất một vế đúng.!có nghĩa là not (phủ định): nó đảo ngượctruethànhfalsevàfalsethànhtrue.
public class Main {
public static void main(String[] args) {
int age = 16;
boolean teen = age >= 13 && age <= 19;
System.out.println(teen); // true
System.out.println(!teen); // false
System.out.println(age < 13 || age > 19); // false
}
}
Short-circuit
- Java reads
&&and||from left to right and stops early when it can. - With
&&, if the left side isfalse, the answer is alreadyfalse, so the right side is skipped. - With
||, if the left side istrue, the answer is alreadytrue, so the right side is skipped. - This lets you check something is safe before you use it.
Ngắt chu trình ngắn
- Java đọc
&&và||theo thứ tự từ trái sang phải và dừng lại sớm nếu có thể. - Với
&&, nếu vế bên trái làfalse, kết quả đã làfalse, nên vế bên phải bị bỏ qua. - Với
||, nếu vế bên trái làtrue, kết quả đã làtrue, nên vế bên phải bị bỏ qua. - Điều này cho phép bạn kiểm tra tính an toàn trước khi sử dụng đối tượng.
public class Main {
public static void main(String[] args) {
int x = 0;
// Left side is false, so x / x is never run (no error).
boolean ok = (x != 0) && (10 / x > 1);
System.out.println(ok); // false
}
}
The == vs .equals() String trap
- For
intandboolean,==works fine. - For
String,==checks if they are the same object in memory, not the same letters. - Two Strings with the same letters can still be different objects, so
==may befalse. - Always compare Strings with
.equals(...).
Bẫy String == vs .equals()
- Đối với
intvàboolean,==hoạt động tốt. - Đối với
String,==kiểm tra xem chúng có phải là cùng một đối tượng trong bộ nhớ hay không, chứ không phải cùng các ký tự. - Hai Strings có cùng các ký tự vẫn có thể là các đối tượng khác nhau, vì vậy
==có thể làfalse. - Luôn luôn so sánh Strings với
.equals(...).
public class Main {
public static void main(String[] args) {
String a = "cat";
String b = new String("cat");
System.out.println(a == b); // false (different objects)
System.out.println(a.equals(b)); // true (same letters)
}
}
Common mistakes
- A condition must be a
boolean;if (x = 5)does not compile. - Each
switchcase needs abreak;.
Lỗi thường gặp
- Một điều kiện phải là một
boolean;if (x = 5)sẽ không biên dịch được. - Mỗi trường hợp
switchcần mộtbreak;.
Now you try
- Each task pre-fills the class skeleton — write your code inside main, or complete the method shown.
- Press Run to compile and run, then Check answer.
- Your code compiles and runs on the server, so even the first run is fast.
Bây giờ bạn thử
- Mỗi nhiệm vụ điền sẵn khung lớp — viết mã của bạn bên trong main, hoặc hoàn thành phương thức được hiển thị.
- Nhấn Chạy để biên dịch và chạy, sau đó Kiểm tra câu trả lời.
- Mã của bạn được biên dịch và chạy trên máy chủ, vì vậy ngay cả lần chạy đầu tiên cũng rất nhanh.
Boolean logic (and/or/not) · Logic Boolean (and/or/not)
&&, ||, ! combine true/false values — see the truth table. · &&, ||, ! kết hợp các giá trị true/false—xem bảng chân lý.
The variable n is -4. Use if / else if / else to print exactly one word: positive if n > 0, negative if n < 0, or zero otherwise. · Biến ⟨n⟩ có giá trị là ⟨-4⟩. Sử dụng ⟨if⟩ / ⟨else if⟩ / ⟨else⟩ để in chính xác một từ: ⟨positive⟩ nếu ⟨n > 0⟩, ⟨negative⟩ nếu ⟨n < 0⟩, hoặc ⟨zero⟩ ngược lại.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Complete equal(String a, String b) so it returns true when the two Strings have the same letters. Use .equals, not ==. · Hoàn thiện ⟨equal(String a, String b)⟩ sao cho trả về ⟨true⟩ khi hai Strings có cùng các chữ cái. Sử dụng ⟨.equals⟩, không dùng ⟨==⟩.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Complete inRange(int x) so it returns true when x is between 10 and 20, including both ends (10 and 20 count). Use &&. · Hoàn thiện ⟨inRange(int x)⟩ sao cho trả về ⟨true⟩ khi ⟨x⟩ nằm giữa 10 và 20, bao gồm cả hai đầu mút (10 và 20 đều tính). Sử dụng ⟨&&⟩.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.