Câu lệnh if

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

graph TD; A((Bắt đầu)) --> B{Điều kiện?}; B -- Đúng --> C[Thực hiện\nkhối lệnh]; B -- Sai --> D((Tiếp tục)); C --> D;

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 (&&/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ữ

Thông tin</div>

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