Loading Now

Câu lệnh switch case trong C++

Câu lệnh switch case trong C++

Bài tập

Cho 2 biến kiểu số nguyên a, b và 1 biến kiểu ký tự c. Cả 3 biến này đều được nhập từ bàn phím. Biết biến c là 1 trong 4 ký tự '+', '-', '*' hoặc '/'. Bạn hãy viết chương trình hiển thị giá trị của biểu thức khi áp dụng phép toán c lên ab. Ví dụ nếu bạn nhập a = 7, c = '+', b = 9 như bên dưới:

7 + 9

Thì màn hình sẽ hiển thị ra:

16

Lý thuyết

Bài này bạn hoàn toàn có thể làm bằng mệnh đề if như đã học nhưng cách tốt hơn là sử dụng lệnh switch case.

Cấu trúc của lệnh switch case:

	switch (x) {
	case giá_trị_1:
		// Nếu x có giá trị bằng giá_trị_1 thì đoạn code trong khối lệnh này sẽ được thực thi
		break;
	case giá_trị_2:
		// Nếu x có giá trị bằng giá_trị_2 thì đoạn code trong khối lệnh này sẽ được thực thi
		break;
	case giá_trị_3:
		// Nếu x có giá trị bằng giá_trị_3 thì đoạn code trong khối lệnh này sẽ được thực thi
		break;
	...
	case giá_trị_n:
		// Nếu x có giá trị bằng giá_trị_n thì đoạn code trong khối lệnh này sẽ được thực thi
		break;
	default:
		/* 
		Nếu x không bằng giá trị nào trong các giá trị trên 
		thì code trong khối lệnh này sẽ được thực thi
		*/
		break;
	}

Biến hoặc biểu thức bên trong lệnh switch phải là một số nguyên và giá trị trong các lệnh case phải là một hằng số. Ví dụ về chương trình nhập vào một số từ 1 tới 7 và hiển thị ngày trong tuần tương ứng với số đó:

#include<iostream>

using namespace std;

int main() {
	int n;
	cin >> n;
	switch (n) {
	case 1:
		cout << "Monday";
		break;
	case 2:
		cout << "Tuesday";
		break;
	case 3:
		cout << "Wednesday";
		break;
	case 4:
		cout << "Thursday";
		break;
	case 5:
		cout << "Friday";
		break;
	case 6:
		cout << "Saturday";
		break;
	case 7:
		cout << "Sunday";
		break;
	default:
		cout << "Invalid input! Please enter week number between 1-7";
	}
	return 0;
}

Lưu ý: nếu trong lệnh case không có break thì chương trình sẽ tiếp tục thực thi các lệnh trong các case tiếp theo cho tới khi gặp lệnh break. Ví dụ về chương trình nhập vào tháng và hiển thị ra số ngày trong tháng đó (không tính năm nhuận):

#include <iostream>

using namespace std;

int main() {
	int month, day;
	cin >> month;

	switch (month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		{
			day = 31;
			break;
		}
		case 4:
		case 6:
		case 9:
		case 11:
		{
			day = 30;
			break;
		}
		default: {
			day = 28;
		}
	}
	cout << day;
	return 0;
}

Đọc tới đây bạn đã có thể làm được bài này bằng câu lệnh switch case, hãy quay lại phần bài tập và làm thử.

Hướng dẫn

Code mẫu:

#include<iostream>

using namespace std;

int main() {
	int a, b;
	char c;
	cin >> a >> c >> b;
	switch (c) {
	case '+':
		cout << a + b;
		break;
	case '-':
		cout << a - b;
		break;
	case '*':
		cout << a * b;
		break;
	case '/':
		cout << a / b;
		break;
	}
	return 0;
}

Post Comment

Contact