Câu lệnh rẽ nhánh



Chào các bạn hôm nay tui sẽ chia sẻ cho mọi người 1 xí kiến thức lập trình , hi vọng sẽ giúp ich cho các bạn h
Khi lập trình chắc chắn sẽ có những lúc bạn muốn sử dụng tới câu điều kiện, ví dụ như khi bạn muốn viết chương trình kiểm tra tính chẵn lẻ của một số hay kiểm tra xem tên của 2 người có giống nhau hay không, ... để viết được chương trình theo yêu cầu trên thì bạn cần biết cách sử dụng mệnh đề if hoặc mệnh đề if.

Mệnh đề if:  Được dùng để kiểm tra một biểu thức điều kiện có đúng hay không, nếu đúng thì các câu lệnh bên trong mệnh đề if sẽ được thực thi. Ví dụ để kiểm tra xem n có chia hết cho 2 không bạn có thể làm như sau:

if ( n % 2 == 0 ) // nếu n chia hết cho 2 thì n là số chẵn.
{
    cout << " n is an even number ";
}
if ( n % 2 != 0 ) // Nếu n không chia hết cho 2 thì n là số lẻ.
{
    cout << " n is an odd number";
}

Mệnh đề if-else:

Tương tự như mệnh đề if nhưng nếu biểu thức điều kiện trong if sai thì đoạn code bên trong else sẽ được thực thi:

if ( n % 2 == 0)  // Nếu n chia hết cho 2 thì hiện ra n là số chẵn và ngược lại.
{
    cout << " n is an even number ";
}
else {
        
    cout << " n is an odd number ";   
}

Trong ngôn ngữ lập trình C++, == là toán tử kiểm tra xem 2 giá trị có bằng nhau không, != là toán tử kiểm tra xem 2 giá trị có khác nhau không
Giống như ví dụ trên if (n % 2 == 0) là câu lệnh kiểm tra xem n chia dư cho 2 có bằng 0 không, if (n % 2 != 0) là câu lệnh kiểm tra xem n chia dư cho 2 có khác 0 không.
Lưu ý: Một số bạn hay nhầm giữa toán tử = và toán tử ==, toán tử = là toán tử gán

Để kiểm tra một số có bằng 0 không bạn có thể sử dụng mệnh đề if và toán tử == giống như sau:

if (n == 0) {
	// Nếu n = 0 thì hiển thị ra màn hình n is equal to 0
	cout << "n is equal to 0";
}

Để kiểm tra một số là nguyên âm hay nguyên dương bạn có thể sử dụng mệnh đề if với các toán tử > và <. Ví dụ chương trình sau:

#include<iostream>

using namespace std;

int main() {
	int n = 5;
	if (n > 0) {
		// Nếu n lớn hơn 0 thì hiển thị n is a positive number
		cout << "n is a positive number";
	}
	if (n < 0) {
		// Nếu n nhỏ hơn 0 thì hiển thị n is a negative number
		cout << "n is a negative number";
	}
	return 0;
}

Sẽ hiển thị lên màn hình:

n is a positive number

Đọc tới đây bạn đã biết cách sử dụng toán tử > và < để so sánh, hãy quay lại phần bài tập và làm thử.

Hướng dẫn

Bạn hãy tham khảo cả 3 đoạn code mẫu bên dưới.

Code mẫu sử dụng mệnh đề if:

#include<iostream>

using namespace std;

int main() {
	int n;
	cin >> n;
	if (n > 0) {
		cout << "n is a positive number";
	}
	if (n < 0) {
		cout << "n is a negative number";
	} 
	if (n == 0) {
		cout << "n is equal to 0";
	}
	return 0;
}

Code mẫu sử dụng mệnh đề if-else:

#include<iostream>

using namespace std;

int main() {
    int n;
    cin >> n;
    if (n > 0) {
        cout << "n is a positive number";
    } else{
        if (n < 0) {
            cout << "n is a negative number";
        } else {
            cout << "n is equal to 0";
        }
    }
    return 0;
}

Code trên có thể viết ngắn hơn bằng cách viết liền else if và else:

#include<iostream>

using namespace std;

int main() {
    int n;
    cin >> n;
    if (n > 0) {
        cout << "n is a positive number";
    } else if (n < 0) {
        cout << "n is a negative number";
    } else {
        cout << "n is equal to 0";
    }
    return 0;

Để kiểm tra một số có lớn hơn hoặc bằng số khác không bạn có thể sử dụng toán tử >=. Ví dụ để kiểm tra biến a có lớn hơn hoặc bằng biến b bạn có thể làm như sau:

if (a >= b) {
	/* 
	Nếu a lớn hơn hoặc bằng b thì hiển thị ra màn hình
	a is greater than or equal to b
	*/
	cout << "a is greater than or equal to b";
}

Sử dụng toán tử 3 ngôi

#include<iostream>

using namespace std;

int main() {
	int a, b, c;
	cin >> a >> b >> c;
	int max = (a > b && a > c) ? a : (b > c ? b : c);
	cout << max;
	return 0;
}
/* Giải thích toán tử 3 ngôi:
phần int max = a > b và a > c đúng không?
Nếu đúng thì max = a ngược lại thì so sánh tiếp

b > c đúng không?
Nếu đúng thì max = b ngược lại thì max = c

Trong 3 ngôi : a, b, c thì c là số lớn nhất
*/

Sử dụng mệnh đề if hoặc if-else

Bạn cần lưu ý trường hợp giá trị của a, b và c là như nhau, trong trường hợp này nếu bạn sử dụng 3 câu lệnh if thì chương trình sẽ cho kết quả sai, xem chương trình sau để hiểu rõ hơn:

#include <iostream>

using namespace std;

int main() {
	int a, b, c;
	a = 5;
	b = 5;
	c = 5;

	if (a >= b && a >= c) {
		cout << a << endl;
	}
	if (b >= a && b >= c) {
		cout << b << endl;
	}
	if (c >= a && c >= b) {
		cout << c << endl;
	}
	return 0;
}

Kết quả khi chạy chương trình:

5
5
5
  
#include <iostream>

using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    if (a >= b && a >= c) {
        cout << a;
    } else if (b >= c) {
        cout << b;
    } else {
        cout << c;
    }

    return 0;
}
/* Dành cho ai chưa hiểu ở đoạn này thì:
Ở if thứ nhất, ta sẽ xét a >= b, a >= c hay không ? Nếu có thì in a còn nếu không thì
a < b, a < c hay có thể gọi là a bé nhất.
Ở if thứ hai, thì a đã bé nhất rồi nên t xét b > c hay không ? Nếu có thì in b còn
không thì xét tiếp.
Ở trường hợp cuối cùng, thì a đã bé nhất rồi maf b còn bé hơn c nên c lớn nhất thì in
c.
Không biết tui giải thích như thế này có đúng không nên có gì góp ý :))
*/

Nhận xét

Đăng nhận xét