Booleans and selection: if, else, switch · Boolean và điều kiện chọn: if, else, switch
True and false in C
- C has no separate true/false type by default. It uses numbers:
0means false, and any other number means true. - A test like
5 > 3produces1(true).5 < 3produces0(false). - (If you
#include <stdbool.h>you can writebool,true, andfalse— but plainintworks everywhere.)
True và false trong C
- C không có kiểu đúng/sai riêng biệt theo mặc định. Nó sử dụng các con số:
0có nghĩa là sai, và bất kỳ số nào khác có nghĩa là đúng. - Một bài kiểm tra như
5 > 3tạo ra1(đúng).5 < 3tạo ra0(sai). - (Nếu bạn
#include <stdbool.h>thì bạn có thể viếtbool,truevàfalse— nhưngintđơn giản hoạt động ở mọi nơi.)
Comparing and combining
- Compare values with
==(equal),!=(not equal),<,>,<=,>=. - Be careful:
==tests equality; a single=assigns a value. They are different! - Combine tests with
&&(and),||(or), and!(not).a && bis true only when both are true.
So sánh và kết hợp
- So sánh các giá trị bằng
==(bằng nhau),!=(không bằng nhau),<,>,<=,>=. - Hãy cẩn thận:
==kiểm tra sự bằng nhau; một dấu=đơn lẻ gán một giá trị. Chúng hoàn toàn khác nhau! - Kết hợp các bài kiểm tra với
&&(và),||(hoặc), và!(không).a && bchỉ đúng khi cả hai đều đúng.
if / else if / else
if (test) { ... }runs the block only when the test is true.- Add
else if (...)to check another test, andelsefor "none of the above". - Only the first matching branch runs.
if / else if / else
if (test) { ... }chỉ chạy khối lệnh nếu điều kiện kiểm tra là đúng.- Thêm
else if (...)để kiểm tra thêm một điều kiện nữa, vàelsecho trường hợp "không có lựa chọn nào ở trên". - Chỉ có nhánh đầu tiên khớp sẽ được thực thi.
#include <stdio.h>
int main(void) {
int score = 72;
if (score >= 90) {
printf("A\n");
} else if (score >= 60) {
printf("Pass\n"); // this one runs
} else {
printf("Fail\n");
}
return 0;
}
switch: choosing among many values
- A
switchpicks a branch based on one value (anintorchar). - Each
caseends withbreak;so it does not fall into the next one.default:catches everything else. switchis neat when you compare the same variable against many fixed values.
switch: chọn giữa nhiều giá trị
- Một cấu trúc
switchchọn một nhánh dựa trên một giá trị (là mộtinthoặcchar). - Mỗi
casekết thúc bằngbreak;để tránh rơi rớt vào nhánh tiếp theo.default:bắt giữ tất cả các trường hợp còn lại. switchrất gọn gàng khi bạn so sánh cùng một biến với nhiều giá trị cố định.
Common mistakes
- Use
==to compare;=assigns (andif (x = 5)is always true). - Each
switchcase needs abreak;.
Lỗi thường gặp
- Sử dụng
==để so sánh;=để gán giá trị (vàif (x = 5)luôn luôn đúng). - Mỗi trường hợp
switchcần mộtbreak;.
Now you try
- Use comparisons and
&&/||to build your tests. Remember0is false, anything else is true. - For the
switchtask, divide the score by 10 first, then switch on the result. - Do not write a
main— the checker provides one.
Bây giờ bạn thử
- Sử dụng các phép so sánh và
&&/||để xây dựng các bài kiểm tra của bạn. Hãy nhớ rằng0là sai, mọi thứ khác đều là đúng. - Đối với bài tập
switch, hãy chia điểm số cho 10 trước, sau đó chuyển sang switch trên kết quả. - Không viết một
main— trình kiểm tra sẽ cung cấp cho bạn một cái.
if / else if / else
Conditions test top-down; the first true block runs. · Điều kiện được kiểm tra từ trên xuống dưới; khối đầu tiên đúng sẽ được thực thi.
Complete int sign(int n) so it returns -1 when n is negative, 0 when n is zero, and 1 when n is positive. Do not write a main. · Hoàn thiện int sign(int n) sao cho trả về -1 khi n là số âm, 0 khi n bằng 0, và 1 khi n là số dương. Đừng viết một main.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Complete int in_range(int n, int lo, int hi) so it returns 1 when n is between lo and hi (inclusive), and 0 otherwise. Use &&. Do not write a main. · Hoàn thiện int in_range(int n, int lo, int hi) sao cho trả về 1 khi n nằm giữa lo và hi (bao gồm cả hai), và 0 trong trường hợp khác. Dùng &&. Đừng viết một main.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Complete char grade_letter(int score) using a switch on score / 10. Return 'A' for 90–100, 'B' for the 80s, 'C' for the 70s, 'D' for the 60s, and 'F' below 60. Do not write a main. · Hoàn thiện char grade_letter(int score) sử dụng một switch trên score / 10. Trả về 'A' cho điểm 90–100, 'B' cho khoảng 80, 'C' cho khoảng 70, 'D' cho khoảng 60, và 'F' dưới 60. Đừng viết một main.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.