Hỏi về kiểu dữ liệu Boolean

Thường thì khởi tạo biến boolean ban đầu sẽ là false;

bool ma_xac_minh = false;
if (id_ == id && password_ == password) {
	std::cout << "logged in successfully :D \n";
	ma_max_minh = true;
}
while (ma_xac_minh == false); 

Ở trên là em đọc từ topic bài học C++ về cú pháp Do … while thì e lại hơi hoang mang ở chỗ cú pháp Bool. Có lúc thì có người dùng Bool xong gán tên cho biến, rồi ở dưới ghi điều kiện xong lại cho biến = True, có lúc thì như trên ngay Bool xong tiếp theo cho biến bằng False, rồi xong ở dưới lại là True @@

bool laTGV;
	
if (a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b) {
	laTGV = true;
}
else {
	laTGV = false;

nên e không hiểu là sau Bool có nhất thiết phải ghi dưới dạng Bool " tên biến" = False; liền luôn không hay chỉ cần Bool “tên biến”; là xong ạ @@ trong lớp thầy không dạy kỹ phần này mà lâu lâu cứ chêm vô dùng :sweat_smile: hoang mang quá @_@!

Đầu tiên bạn cần tìm hiểu mỗi đoạn ví dụ đang làm gì.

2 Likes
#include<iostream>
using namespace std;
#include<math.h>

int main() {
	float a, b, c;
	cout << "Nhap do dai 3 canh tam giac: ";
	cin >> a >> b >> c;
	float p = (a + b + c) / 2;
	float dt = sqrt(p * (p - a) * (p - b) * (p - c));
	cout << "Chu vi: " << 2 * p << endl;
	cout << "Dien tich: " << dt << endl;
	bool laTGV;
	
	if (a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b) {
		laTGV = true;
	}
	else {
		laTGV = false;
	}
	
	
	if (a == b && b == c) {
		cout << "Tam giac deu";
	}
	else {
		if (a == b || b == c || a == c)	{
			if (laTGV) {
				cout << "Tam giac vuong can";
			}
			else {
				cout << "Tam giac can";
			}
		}
		else {
			if (laTGV) {
				cout << "Tam giac vuong";			
			}
			else {
				cout << "Tam giac thuong";
			}
		}
	}
	cout << endl;
}

cái này là ví dụ thứ 2 ạ

#include <iostream>
int main() {
const int32_t  id = 123;
const int32_t password = 123456;
int32_t id_;
int32_t password_;
bool ma_xac_minh = true;
do {
	std::cout << "enter your id : \n";
	std::cin >> id_;
	std::cout << "enter your password : \n";
	std::cin >> password_;
	if (id_ == id && password_ == password) {
		
		std::cout << "logged in successfully :D \n";
		break;
	}
	else
	{
		std::cout << "have some problem with your id or password, please try again : \n";
	}

} while (ma_xac_minh);
     return 0;
     }

còn cái này là trong phần cmt của bài học Vòng lặp Do-while, còn đoạn e trích là của 1 người khác sửa bài trên

Mình nghĩ làm vậy cũng được mà.
Thường thì khởi tạo biến boolean ban đầu sẽ là false;

bool ma_xac_minh = false;
if (id_ == id && password_ == password) {

		std::cout << "logged in successfully :D \n";
		ma_max_minh = true;
	}
while (ma_xac_minh == false);

Hoặc

if (id_ == id && password_ == password) {
		std::cout << "logged in successfully :D \n";
	}
while (id_ != id || password_ != password);

Đoạn này:

Cũng có thể viết thành:

	bool laTGV = false;
	
	if (a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b) {
		laTGV = true;
	}

Hoặc:

	bool laTGV = true;
	
	if (!(a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b)) {
		laTGV = false;
	}

Hoặc ngon lành:

	bool laTGV = (a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b);

Tùy theo cách nghĩ và viết của từng người thôi.
Tôi muốn trả lời là No nhưng không muốn ghi chữ No nên tôi trả lời là !Yes.

4 Likes

thks anh, em hiểu rồi :grin: :grin:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?