Câu Lệnh điều Kiện & Rẽ Nhánh Trong C - IT DESIGN - Thầy Nhuộm

Đăng nhập Đăng nhập Hoan nghênh!đăng nhập vào tài khoản của bạnTài khoảnmật khẩu của bạn Quên mật khẩu? Khôi phục mật khẩuKhởi tạo mật khẩuemail của bạn TÌM KIẾM Thứ Tư, Tháng Một 21, 2026
  • Đăng nhập/Đăng ký
Đăng nhậpĐăng nhập tài khoảnTài khoảnmật khẩu của bạn Forgot your password? Get helpKhôi phục mật khẩuKhởi tạo mật khẩuemail của bạn Mật khẩu đã được gửi vào email của bạn. IT DESIGN Trang chủ LẬP TRÌNH Câu lệnh điều kiện & rẽ nhánh trong C
  • LẬP TRÌNH
  • Lập trình C/C++
Chia sẻ Facebook Tweet

Toán tử trong Ngôn ngữ C

Toán tử là một số các kí hiệu nhằm giúp C thực hiện phép toán học nhất định. Ngôn ngữ C có sẵn rất nhiều toán tử và cung cấp các kiểu toán tử sau đây:

  • Toán tử số học
  • Toán tử gán
  • Toán tử quan hệ
  • Toán tử logic
  • Toán tử bit
  • Toán tử hỗn hợp

Toán tử số học (Arithmetic Operators)

Toán tử số học là một loại toán tử được sử dụng thực hiện các phép toán: cộng, trừ, nhân, chia,… trên các giá trị số (biến và hằng). Đây là các toán tử cần sự tham gia của 2 giá trị số nên được phân loại là các toán tử 2 ngôi.

TOÁN TỬÝ NGHĨA
+phép toán cộng
phép toán trừ
*phép toán nhân
/phép toán chia
%phép toán lấy số dư(chỉ áp dụng cho số nguyên)

Ví dụ code minh hoạ:

#include <stdio.h> int main(){ int a, b; printf("\nNhap a = "); scanf("%d", &a); // Lưu ý nhập b != 0 printf("\nNhap b = "); scanf("%d", &b); // Phép (+) int sum = a + b; printf("\n%d + %d = %d", a, b, sum); // Phép (-) int sub = a - b; printf("\n%d - %d = %d", a, b, sub); // Phép (*) int mul = a * b; printf("\n%d * %d = %d", a, b, mul); // Phép (/) float div = a / (float)b; // float div = a / b * 1.0; // float div = (float)a / b; // float div = (float)(a / b); // do not use printf("\n%d / %d = %f", a, b, div); // Phép (%) int mod = a % b; printf("\n%d %% %d = %d", a, b, mod); }

Toán tử tăng, giảm (Increment and Decrement)

Toán tử tăng, giảm là toán tử 1 ngôi, bao gồm 2 toán tử sau:

  • Toán tử + +: Tăng giá trị lên 1 đơn vị.
  • Toán tử – –: Giảm giá trị đi 1 đơn vị.
  • Với a++ và a- -: Chương trình sẽ thực hiện lệnh với a sau đó mới thực hiện tăng và giảm biến a.
  • Với ++a và – -a: Chương trình sẽ thực hiện tăng/giảm biến a sau đó mới thực hiện lệnh.

Ví dụ code minh hoạ:

#include <stdio.h> int main(){ int a; printf("\nNhap a = "); scanf("%d", &a); // Toán tử ++ ++a; printf("\na++ = %d", a); // // Toán tử -- --a; printf("\na-- = %d", a); a = 5; printf("\na = %d", a); // Tiền tố và hậu tố a++ và ++a printf("\n++a = %d", ++a); a = 5; printf("\n--a = %d", --a); a = 5; printf("\na++ = %d", a++); a = 5; printf("\na-- = %d", a--); }

Toán tử gán (Assignment Operators)

Toán tử gán dùng để gán 1 giá trị cho 1 biến. Bao gồm các toán tử sau:Cú pháp: <Biến A> = <Giá trị>; hoặc <Biến A> = <BiếnB>;

TOÁN TỬVIẾT GỌNVIẾT ĐẦY ĐỦ
=a = ba = b
+=a += ba = a+b
-=a -= ba = a-b
*=a *= ba = a*b
/=a /= ba = a/b
%=a %= ba = a%b

Ví dụ code minh hoạ:

#include <stdio.h> int main(){ int a = 5, c; c = a; // c is 5 printf("c = %d\n", c); c += a; // c is 10 => c = c + a printf("c = %d\n", c); c -= a; // c is 5 => c = c - a printf("c = %d\n", c); c *= a; // c is 25 => c = c * a printf("c = %d\n", c); c /= a; // c is 5 => c = c / a printf("c = %d\n", c); c %= a; // c = 0 => c = c % a printf("c = %d\n", c); // return 0; }

Toán tử quan hệ (Relational Operators) hay toán tử so sánh

Toán tử quan hệ hay so sánh sử dụng các phép toán so sánh giữa các số, biến và hằng. Giá trị trả về là logic (true hoặc false tương ứng với 1 hoặc 0).

TOÁN TỬÝ NGHĨAVÍ DỤ
==so sánh bằng7 == 3 cho kết quả là 0
>so sánh lớn hơn5 > 1 cho kết quả là 1
<so sánh nhỏ hơn5 < 2 cho kết quả là 0
!=so sánh khác5 != 4 cho kết quả là 1
>=lớn hơn hoặc bằng8 >= 3 cho kết quả là 1
<=nhỏ hơn hoặc bằng5 <= 0 cho kết quả là 0

Ví dụ code minh hoạ:

#include <stdio.h> int main(){ int a = 5, b = 5, c = 10; printf("%d == %d is %d \n", a, b, a == b); printf("%d == %d is %d \n", a, c, a == c); printf("%d > %d is %d \n", a, b, a > b); printf("%d > %d is %d \n", a, c, a > c); printf("%d < %d is %d \n", a, b, a < b); printf("%d < %d is %d \n", a, c, a < c); printf("%d != %d is %d \n", a, b, a != b); printf("%d != %d is %d \n", a, c, a != c); printf("%d >= %d is %d \n", a, b, a >= b); printf("%d >= %d is %d \n", a, c, a >= c); printf("%d <= %d is %d \n", a, b, a <= b); printf("%d <= %d is %d \n", a, c, a <= c); }

Toán tử logic (Logical Operators)

Toán tử logic là một toán tử trong C. Toán tử logic bao gồm các toán tử sau:

  • Toán tử &&: là toán tử AND, trả về true khi và chỉ khi tất cả các toán hạng đều đúng.
  • Toán tử ||: là toán tử OR, trả về true khi có ít nhất 1 toán hạng đúng.
  • Toán tử !: là toán tử NOT, phủ định giá trị của toán hạng.

Ví dụ code minh hoạ:

#include <stdio.h> int main(){ int a = 5; printf("\n%d", (a > 0 && a % 2 == 0)); // 1 && 0 = 0 printf("\n%d", (a % 2 == 0 || a % 5 == 0)); // 0 || 1 = 1 printf("\n%d", !(a == 5)); // Tại sao không dùng & hay |? int b = 5; // dấu || printf("\n%d", (b == 5 || b++ > 0)); printf("\nb = %d", b); b = 5; printf("\n%d", (b == 5 | b++ > 0)); printf("\nb = %d", b); // dấu || b = 5; printf("\n%d", (b != 5 && b++ > 0)); printf("\nb = %d", b); b = 5; printf("\n%d", (b != 5 & b++ > 0)); printf("\nb = %d", b); }

Toán tử thao tác bit (Bitwise Operators)

Các toán tử dạng bit cho phép chúng ta thao tác trên từng bit riêng biệt trong các kiểu dữ liệu nguyên thủy. Giả sử A = 60 (= 0011 1100) và B = 13 (= 0000 1101).

Toán tửMiêu tảVí dụ
&Toán tử AND (và) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong cả hai toán hạng.(A & B) sẽ cho kết quả là 12, tức là 0000 1100
|Toán tử OR (hoặc) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong một hoặc hai toán hạng.(A | B) sẽ cho kết quả là 61, tức là 0011 1101
^Toán tử XOR nhị phân sao chép bit mà nó chỉ tồn tại trong một toán hạng mà không phải cả hai.(A ^ B) sẽ cho kết quả là 49, tức là 0011 0001
~Toán tử đảo bit (đảo bit 1 thành bit 0 và ngược lại).(~A ) sẽ cho kết quả là -61, tức là 1100 0011.
<<Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải.A << 2 sẽ cho kết quả 240, tức là 1111 0000 (dịch sang trái hai bit)
>>Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải.A >> 2 sẽ cho kết quả là 15, tức là 0000 1111 (dịch sang phải hai bit)

Toán tử hỗn hợp trong C

Có một số toán tử hỗn hợp quan trọng là sizeof và ? : được hỗ trợ bởi ngôn ngữ C.

Toán tửMiêu tảVí dụ
sizeof()Trả về kích cỡ biếnsizeof(a), với a là integer, thì sẽ trả lại kết quả là 4.
&Trả về địa chỉ biến.&a; sẽ cho địa chỉ thực sự của biến a.
*Trỏ tới biến.*a; sẽ trỏ tới biến a.
? :Biểu thức ĐKNếu ĐK là true ? thì giá trị X : Nếu không thì giá trị Y

Thứ tự ưu tiên trong toán tử

LoạiToán tửThứ tự ưu tiên
Postfix() -> . ++ – –Trái sang phải
Unary+ – ! ~ ++ – – (type)* & sizeofPhải sang trái
Tính nhân* / %Trái sang phải
Tính cộng+ –Trái sang phải
Dịch chuyển<< >>Trái sang phải
Quan hệ< <= > >=Trái sang phải
Cân bằng== !=Trái sang phải
Phép AND bit&Trái sang phải
Phép XOR bit^Trái sang phải
Phép OR bit|Trái sang phải
Phép AND logic&&Trái sang phải
Phép OR logic||Trái sang phải
Điều kiện?:Phải sang trái
Gán= += -= *= /= %=>>= <<= &= ^= |=Phải sang trái
Dấu phảy,Trái sang phải

Câu lệnh điều kiện if – else

Mệnh đề if trong C

Mệnh đề if được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Khối lệnh sau if được thực thi nếu giá trị của điều kiện là True. Cú pháp:

if (condition) { // khối lệnh này được thực thi nếu condition = true }

Ví dụ code minh hoạ:

// 1. Chỉ có if // BT: Nhập vào 1 số nguyên, kiểm tra số đó có phải số chẵn hay ko? #include <stdio.h> int main(){ int a; printf("Nhap a = "); scanf("%d", &a); if (a % 2 == 0) // a chia hết cho 2 { printf("%d la so chan", a); } printf("\nXong!"); }

Mệnh đề if else trong C

if (condition){ // statement1 // khối lệnh sẽ thực hiện nếu điều kiện đúng }else{ // statement2 // khối lệnh sẽ thực hiện nếu điều kiện sai }

Ví dụ code minh hoạ:

// 2. Có if else // BT: Nhập vào 1 số nguyên, kiểm tra số đó có phải số chẵn hay số lẻ #include <stdio.h> int main(){ int a; printf("Nhap a = "); scanf("%d", &a); if (a % 2 == 0) // a chia hết cho 2 { printf("%d la so chan", a); }else{ printf("%d la so le", a); } }

Cấu trúc if … elseif … else

if (test expression1) { // statement(1) } else if(test expression2) { // statement(2) } else if (test expression3) { // statement(3) } . . else { // statement(n) }

Ví dụ code minh hoạ:

// 3. if else if // BT: Nhập vào hai số nguyên, đưa ra kết luận so sánh 2 số đó #include <stdio.h> int main(){ int a, b; printf("Nhap a = "); scanf("%d", &a); printf("Nhap b = "); scanf("%d", &b); // a, b if(a > b){ // printf("%d lon hon %d", a, b); }else if(a == b){ printf("%d bang %d", a, b); }else{ printf("%d nho hon %d", a, b); } }

Cấu trúc if else lồng nhau

Chính là việc bạn sử dụng một cấu trúc if else khác trong thân của một cấu trúc if else đã có. Xem ví dụ code sau đây để hiểu rõ hơn.

// 4. if else lồng nhau // BT: Nhập vào 1 số nguyên, kiểm tra số đó là số âm chẵn, âm lẻ, dương chẵn hay dương lẻ hay là số 0? #include <stdio.h> int main(){ int a; printf("Nhap a = "); scanf("%d", &a); if(a > 0){ // Số dương if(a % 2 == 0){ printf("Day la so duong chan!"); }else{ printf("Day la so duong le!"); } }else if(a == 0){ // Số 0 printf("Day la so 0!"); }else{ // Số âm if(a % 2 == 0){ printf("Day la so am chan!"); }else{ printf("Day la so am le!"); } } }

Câu lệnh rẽ nhánh switch – case

Lệnh switch case là một cấu trúc điều khiển & rẽ nhánh hoàn toàn có thể được thay thế bằng cấu trúc if else. Tuy nhiên, việc sử dụng switch case sẽ giúp code của chúng ta dễ viết và dễ đọc hơn; Một điều nữa là sử dụng switch case có vẻ như cho hiệu năng tốt hơn so với sử dụng if else.

Cú pháp của lệnh switch case:

switch (expression) ​{ case constant1: // statements break; case constant2: // statements break; . . . default: // default statements }
  • expression phải bắt buộc là giá trị hằng, có thể là biểu thức nhưng kết quả cần là hằng số.
  • Trong đó, expression sẽ được tính toán 1 lần duy nhất và sau đó so sánh với các giá trị của các case.
  • Nếu có 1 case nào đó khớp giá trị, các khối lệnh tương ứng sau case đó sẽ được thực hiện cho tới khi gặp lệnh break. Do đó, nếu chúng ta không sử dụng break thì tất cả các case kể từ case khớp giá trị đều được thực hiện.
  • Case default sẽ được thực hiện nếu không có case nào khớp giá trị với expression.

Sơ đồ khối của lệnh switch case:

Ví dụ code minh hoạ:

//Nhap 2 so a, b va tinh tong, hieu, tich & thuong #include <stdio.h> int main() { int a, b; char opera; printf("\nNhap phep toan: "); scanf("%c", &opera); printf("\nNhap vao 2 so a, b: "); scanf("%d%d", &a, &b); switch (opera) { case '+': printf("%d + %d = %d", a, b, a + b); break; case '-': printf("%d - %d = %d", a, b, a - b); break; case '*': printf("%d * %d = %d", a, b, a * b); break; case '/': if(b == 0){ printf("Khong the chia cho 0!"); }else{ printf("%d / %d = %.2f", a, b, (float)a / b); } break; default: printf("Khong co phep toan %c!", opera); break; } }

Bài tập Minh hoạ

  1. Nhập một số bất kỳ. Hãy đọc giá trị của số nguyên đó nếu nó có giá trị từ 0 đến 9, ngược lại thông báo không đọc được.
  2. Nhập một chữ cái. Nếu là chữ thường thì đổi sang chữ hoa, ngược lại đổi sang chữ thường.
  3. Giải phương trình bậc nhất ax + b = 0.
  4. Giải phương trình bậc hai ax2 + bx + c = 0.
  5. Nhập 4 số nguyên a, b, c và d. Tìm số có giá trị nhỏ nhất (min).
  6. Nhập 4 số nguyên a, b, c và d. Hãy sắp xếp giá trị của 4 số nguyên này theo thứ tự tăng dần.
  7. Tính tiền đi taxi từ số km nhập vào. Biết:
    • 1 km đầu giá 15000đ.
    • Từ km thứ 2 đến km thứ 5 giá 13500đ.
    • Từ km thứ 6 trở đi giá 11000đ.
    • Nếu trên 120km được giảm 10% tổng tiền.
  8. Nhập vào tháng và năm. Cho biết tháng đó có bao nhiêu ngày.
  9. Nhập độ dài 3 cạnh 1 tam giác. Kiểm tra đó có phải là tam giác không và là tam giác gì?

BÀI VIẾT LIÊN QUANXEM THÊM

LẬP TRÌNH

Lập trình Python trên Visual Studio Code

LẬP TRÌNH

Figma là gì? Cài đặt, sử dụng Figma?

Cơ sở dữ liệu

Viết mã CSDL với SQL Prompt

LẬP TRÌNH

Hơn 100 Project C# tham khảo

Cơ sở dữ liệu

Bài TEST Hệ QT CSDL SQL

LẬP TRÌNH

Cài Visual Studio Code lập trình C/C++

BÌNH LUẬN Hủy trả lời

Vui lòng nhập bình luận của bạn Vui lòng nhập tên của bạn ở đây Bạn đã nhập một địa chỉ email không chính xác!Vui lòng nhập địa chỉ email của bạn ở đây

Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.

LIÊN HỆ TƯ VẤN

VIDEO MỚI NHẤT

https://youtu.be/zkzYcM8l9FQ

XEM NHIỀU

ĐỒ HỌA

Bộ nhận diện thương hiệu (Branding)

trannhuomedu - 28 Tháng Tám, 20220 Một trong những kiến thức cơ bản không thể thiếu đối với các bạn muốn tìm hiểu về Marketing Digital là bộ nhận diện thương hiệu

Kho tài nguyên thiết kế đồ hoạ

30 Tháng Tám, 2022

Infographic và template miễn phí dành cho infographic

9 Tháng Sáu, 2021

Những bài DEMO của sinh viên khóa 2017 phần 2

14 Tháng Ba, 2020

Bạn đã hiểu gì về UI UX? UI UX Design?

16 Tháng Năm, 2023

BÀI VIẾT TIÊU BIỂU

Công cụ thiết kế Figma

8 Tháng Mười, 2024

Sử dụng Git/GitHub từ A đến Z

16 Tháng Mười Một, 2023

Phím tắt cho phần mềm Blender

25 Tháng Năm, 2023

BÀI VIẾT PHỔ BIẾN

Ngân hàng 1000 bài code C/C++

6 Tháng Mười Hai, 2021

Hàm đồ hoạ cơ bản trong ngôn ngữ C/C++

11 Tháng Năm, 2020

Hướng dẫn cài đặt và thêm thư viện đồ họa vào...

10 Tháng Ba, 2020

MỤC XEM NHIỀU

  • ĐỒ HỌA37
  • LẬP TRÌNH24
  • TIN HỌC21
  • Học Đồ hoạ cơ bản18
  • Kiến thức Tin học10
  • Lập trình Java9
  • Học Adobe Photoshop8
  • TRẮC NGHIỆM8
  • Học tiếng Nhật7
VỀ CHÚNG TÔIHọc tập & Giải trí được chia sẻ miễn phí!Liên hệ chúng tôi: [email protected]THEO DÕI CHÚNG TÔI NHIỀU BÀI VIẾT HƠN LẬP TRÌNH

Cài Visual Studio Code lập trình C/C++

trannhuomedu - 2 Tháng Sáu, 20220

Từ khóa » Các Lệnh Rẽ Nhánh Vô điều Kiện Là