Xin chào mọi người!
Không hiểu tại sao hôm nay tâm trạng mình lại tốt để viết liền 2 bài nhỉ 😀 Thôi thì cứ viết vậy.
Bài viết hôm nay mình sẽ giới thiệu về cấu trúc rẽ nhánh. Bất kì ngôn ngữ lập trình nào cũng vậy, cấu trúc rẽ nhánh luôn là một trong những phần quan trọng nhất. Chính vì vậy trong bài này mình sẽ nói thật kĩ về vấn đề này.
Trong đời sống hằng ngày, ta bắt gặp những cấu trúc rẽ nhánh, dạng như “Hôm nay thầy giáo mà không ra bài tập thì tí tao với mày đi chơi”hay phũ phàng hơn thì “Anh chọn người ấy hay là em?” (đùa tí thôi :v)
Trong ngôn ngữ lập trình, cấu trúc rẽ nhánh được sử dụng khi tính toán điều kiện nào đó, nếu nó đúng thì làm cái này, sai thì làm cái kia hoặc chả làm gì cả. Trong C++ có sẵn 2 cấu trúc rẽ nhánh là if else và switch
Mình nói về if else trước nhé :D. Cú pháp:
Mã nguồn:
1
2
3
4
if (<điều kiện>)
{
  // Câu lệnh khi <điều kiện> đúng
}
Cấu trúc if else đầy đủ sẽ là:
Mã nguồn:
1
2
3
4
5
6
7
8
if (<điều kiện>)
{
  // Câu lệnh khi <điều kiện> đúng
}
else
{
  // Câu lệnh khi <điều kiện> sai
}
Ví dụ:
Mã nguồn:
1
2
3
4
5
6
7
8
9
// Kiem tra so lon hon giua a va b
if (a > b)
{
  cout << "a lon hon" << endl;
}
else
{
  cout << "b lon hon" << endl;
}
Trong cấu trúc if else, <điều kiện> là 1 biểu thức logic. Biểu thức logic có thể là biến kiểu boolean hoặc 1 biểu thức logic. Với những cấu trúc if có 1 câu lệnh thì ta có thể rút gọn lại bằng cách xoá đi cặp móc nhọn (mình không khuyến khích cách này cho lắm, tốn có 2 dòng mà đỡ phải sửa code :3)
Mã nguồn:
1
2
3
// Kiem tra so lon hon giua a va b
if (a > b) cout << "a lon hon" << endl;
else cout << "b lon hon" << endl;
Ngoài ra, với những đoạn code đặc biệt, ta cũng có thể rút gọn lại bằng cấu trúc sau:
(<điều kiện>) ? <giá trị 1> <giá trị 2>;
Ta có thể sử dụng ngôn ngữ tự nhiên để đọc đoạn code trên như sau: kiểm tra <điều kiện> nếu đúng thì trả về <giá trị 1>, ngược lại thì trả về<giá trị 2>
Ví dụ:
Mã nguồn:
1
2
// Kiem tra so lon hon giua a va b
int KQ = (a > b) ? a : b; // KQ se la a neu a lon hon b, va nguoc lai
Tiếp theo mình sẽ nói về switch, thì cú pháp của nó như sau
Mã nguồn:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch (<biểu thức nguyên>)
{
  case <giá trị 1>:
    // Câu lệnh 1
    break;
  case <giá trị 2>:
    // Câu lệnh 2
    break;
  ...
  case <giá trị n>:
    // Câu lệnh n
    break;
  default:
    // Câu lệnh
}
Trong switch, <biểu thức nguyên> có thể là 1 biến, hàm trả về giá trị,… Nó sẽ lần lượt so sánh với những <giá trị> từng case, nếu case nào có giá trị bằng với <biểu thức nguyên>, nó sẽ chạy câu lệnh bên dưới, còn không có giá trị nào bằng thì nó sẽ chạy câu lệnh ở default.
Ví dụ:
Mã nguồn:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Xuất ra chữ các số tự nhiên nhỏ hơn 3
switch (so_tu_nhien)
{
  case 0:
    cout << "Khong" << endl;
    break;
  case 1:
    cout << "Mot" << endl;
    break;
  case 2:
    cout << "Hai" << endl;
    break;
  default:
    cout << "Khong doc duoc :v" << endl;
}
Ơ vậy thì break ở trong đoạn code đó để làm gì nhỉ? Ta cùng xét ví dụ trên nhé 😀
// Xuất ra chữ các số tự nhiên nhỏ hơn 3
int so_tu_nhien = 1;
switch (so_tu_nhien)
{
case 0:
cout << “Khong” << endl;
break;
case 1:
cout << “Mot” << endl;
case 2:
cout << “Hai” << endl;
break;
default:
cout << “Khong doc duoc :v” << endl;
}
Chuyện gì vậy nhỉ? Kết quả xuất ra lại luôn cả “Hai”?
Một lưu ý với cấu trúc switch là sau khi hoàn tất khối lệnh trong case, nếu không gặp break thì chương trình sẽ tự động chuyển sang case kế tiếp. Ở ví dụ trên, do case 1 không có break khi kết thúc khối lệnh nên nó sẽ tự động chuyển sang case 2. Bạn nhớ lưu ý để tránh xảy ra lỗi không đáng có nhé 😀
Trên đây là bài viết về cấu trúc rẽ nhánh IF/ELSE và SWITCH. Cảm ơn các bạn đã theo dõi!
Đánh giá bài viết này để tác giả có động lực hơn nhé!
Axact

Administrator:

Xin chào, tôi là Nguyễn Quý Quang Huy. Tôi 14 tuổi và sinh sống tại Hoài Đức, Hà Nội. Tôi lập ra Rinne-IT Blog này nhằm chia sẻ những kiến thức mình có và những bài viết hay trên mạng do tôi tổng hợp. Blog đang trong giai đoạn phát triển nên nếu có lỗi mong các bạn bỏ qua. Tôi luôn chào đón những ý kiến phát triển từ từ các bạn. Giờ thì hãy khám phá blog của tôi nào ^_^

Bình Luận:

0 bình luận: