Mục đích
Câu lệnh if được dùng khi chương trình chỉ cần thực hiện một hành động nếu điều kiện đúng. Nếu điều kiện sai, khối lệnh bị bỏ qua và chương trình tiếp tục ở phần sau.
Sơ đồ luồng
Ví dụ kiểm tra số dương
number = 15
if number > 0:
print("So duong")
program IfPositive;
var
number: Integer;
begin
number := 15;
if number > 0 then
Writeln('So duong');
end.
#include <stdio.h>
int main(void) {
int number = 15;
if (number > 0) {
printf("So duong\n");
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int number = 15;
if (number > 0) {
cout << "So duong" << endl;
}
return 0;
}
int number = 15;
if (number > 0)
{
Console.WriteLine("So duong");
}
const number = 15;
if (number > 0) {
console.log("So duong");
}
const number: number = 15;
if (number > 0) {
console.log("So duong");
}
package main
import "fmt"
func main() {
number := 15
if number > 0 {
fmt.Println("So duong")
}
}
fn main() {
let number = 15;
if number > 0 {
println!("So duong");
}
}
Kết hợp nhiều điều kiện
Điều kiện trong if không giới hạn ở một biểu thức đơn. Có thể kết hợp nhiều điều kiện bằng toán tử logic và (&&/and) hoặc hoặc (||/or).
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("Duoc vao")
program CombinedIf;
var
age: Integer;
hasTicket: Boolean;
begin
age := 20;
hasTicket := True;
if (age >= 18) and hasTicket then
Writeln('Duoc vao');
end.
#include <stdbool.h>
#include <stdio.h>
int main(void) {
int age = 20;
bool hasTicket = true;
if (age >= 18 && hasTicket) {
printf("Duoc vao\n");
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int age = 20;
bool hasTicket = true;
if (age >= 18 && hasTicket) {
cout << "Duoc vao" << endl;
}
return 0;
}
int age = 20;
bool hasTicket = true;
if (age >= 18 && hasTicket)
{
Console.WriteLine("Duoc vao");
}
const age = 20;
const hasTicket = true;
if (age >= 18 && hasTicket) {
console.log("Duoc vao");
}
const age: number = 20;
const hasTicket: boolean = true;
if (age >= 18 && hasTicket) {
console.log("Duoc vao");
}
package main
import "fmt"
func main() {
age := 20
hasTicket := true
if age >= 18 && hasTicket {
fmt.Println("Duoc vao")
}
}
fn main() {
let age = 20;
let has_ticket = true;
if age >= 18 && has_ticket {
println!("Duoc vao");
}
}
Cách đọc
- Đánh giá biểu thức điều kiện.
- Nếu kết quả đúng, thực hiện khối lệnh đi kèm.
- Nếu kết quả sai, bỏ qua khối lệnh đó.
Ghi chú theo ngôn ngữ
Python dùng thụt lề để phân định thân if — không có dấu ngoặc nhọn. Điều kiện không cần đặt trong (). Toán tử logic viết bằng từ khóa and, or, not.
Pascal không bắt buộc đặt điều kiện trong dấu ngoặc tròn. Nếu sau then chỉ có một câu lệnh, có thể viết trực tiếp mà không cần begin ... end. Khi kết hợp điều kiện, mỗi điều kiện con nên đặt trong () để rõ ràng.
C yêu cầu điều kiện nằm trong (). Nên dùng {} ngay cả khi thân if chỉ có một câu lệnh để tránh lỗi khi mở rộng mã sau này. Toán tử logic dùng &&, ||, !.
C++ giống C về cú pháp if. Ngoài &&, ||, !, C++ còn chấp nhận các từ khóa thay thế: and, or, not (từ tiêu chuẩn ISO C++).
C# yêu cầu điều kiện nằm trong () và điều kiện phải có kiểu bool — không thể dùng số nguyên như if (n). Luôn dùng {} cho thân if theo quy ước phong cách mã C#.
JavaScript linh hoạt về giá trị “truthy/falsy”: 0, "", null, undefined, NaN đều được coi là sai trong if. Cần cẩn thận khi điều kiện không phải là boolean thuần.
TypeScript giữ nguyên cú pháp JavaScript nhưng kiểm tra kiểu nghiêm hơn. Nếu điều kiện là kiểu number hay string, TypeScript vẫn cho phép nhưng có thể cảnh báo nếu bật strict mode.
Go không dùng dấu ngoặc tròn () quanh điều kiện, nhưng bắt buộc có dấu ngoặc nhọn {} cho khối lệnh dù chỉ có một câu lệnh. Điều kiện phải là kiểu bool — không dùng số nguyên.
Rust cũng không dùng () quanh điều kiện và bắt buộc có {}. Điều kiện phải có kiểu bool. Ngoài ra, if trong Rust là biểu thức — có thể trả về giá trị và gán vào biến.
Kết luận
if là dạng rẽ nhánh đơn giản nhất. Khi cần chọn giữa hai hướng xử lý, chuyển sang Câu lệnh if-else.
Bình luận