Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Câu lệnh rẽ nhánh (Decision Making) trong C: if, else, switch


Các câu lệnh rẽ nhánh:

  • if đơn
  • if - else
  • if - else lồng nhau (nested)
  • else - if ladder
  • switch

1. if đơn

Thực hiện khi điều kiện đúng.

if (dieu_kien) { cau_lenh; }

Ví dụ: Kiểm tra số > 50

#include <stdio.h>
int main() {
    int a; scanf("%d", &a);
    if (a > 50) printf("%d > 50", a);
    return 0;
}

2. if - else

if (dk) { dung; } else { sai; }

Ví dụ: Chẵn/lẻ

#include <stdio.h>
int main() {
    int n; scanf("%d", &n);
    if (n%2==0) printf("%d chan", n);
    else printf("%d le", n);
    return 0;
}

3. Nested if - else

if (dk1) {
    if (dk2) stmt1; else stmt2;
} else {
    if (dk3) stmt3; else stmt4;
}

Ví dụ: Tìm max của 3 số

#include <stdio.h>
int main() {
    int a,b,c; scanf("%d%d%d",&a,&b,&c);
    if (a>b) {
        if (a>c) printf("%d lon nhat", a);
        else printf("%d lon nhat", c);
    } else {
        if (b>c) printf("%d lon nhat", b);
        else printf("%d lon nhat", c);
    }
    return 0;
}

4. Else - if ladder

Nhiều điều kiện tuần tự.

if (dk1) stmt1;
else if (dk2) stmt2;
...
else stmtX;

Ví dụ: Nghiệm phương trình bậc 2

#include <stdio.h>
#include <math.h>
int main() {
    int a,b,c,d; float r1,r2;
    scanf("%d%d%d",&a,&b,&c);
    d = b*b - 4*a*c;
    if (d>0) {
        r1 = (-b+sqrt(d))/(2*a);
        r2 = (-b-sqrt(d))/(2*a);
        printf("r1=%.2f, r2=%.2f", r1, r2);
    } else if (d==0) {
        r1 = r2 = -b/(2*a);
        printf("Nghiem kep: %.2f", r1);
    } else
        printf("Vo nghiem");
    return 0;
}

5. Switch statement

Chọn một trong nhiều trường hợp.

switch(bieu_thuc) {
    case gt1: stmt1; break;
    case gt2: stmt2; break;
    default: stmtX;
}

Ví dụ: In tên số 0,1

#include <stdio.h>
int main() {
    int n; scanf("%d",&n);
    switch(n) {
        case 0: printf("khong"); break;
        case 1: printf("mot"); break;
        default: printf("sai");
    }
    return 0;
}