Hàm Bool là hàm gì và cách sử dụng ra sao?

Cho em hỏi hàm Bool là hàm gì ạ? Và cách sử dụng nó sao ạ?

2 Likes

bool là một kiểu dữ liệu tương tự int, float, string… trong c/c++ chứ không phải hàm bạn à. :smile:
Nó chỉ có 2 kiểu : đúng (True) hoặc sai (False)

8 Likes

Cách dùng là sao bạn?

thường dùng làm kiểu trả về của một hàm kiểm tra (vì bool chỉ có thể Đúng hoặc Sai)

ví dụ như hàm kiểm tra số nguyên tố:

bool nguyenTo(int n) {
        if (n < 2)
		return false;
	for (int i = 2; i <= (int)sqrt(n); i++) {
		if (n % i == 0)
			return false;
	}
	return true;
}
6 Likes

Còn trong hàm main thì if(bool==true) cout << n << " la so nguyen to"; hả anh?

không phải, bool chỉ là kiểu trả về thôi, bạn phải dùng tên hàm là nguyenTo, truyền tham số n vào để gọi hàm nhé. :smile:

if (nguyenTo(n) == true)… hoặc viết tắt là if (nguyenTo(n))

5 Likes

hehe em hiểu rồi. Ths anh nhìu nhe ^^

1 Like

hello Ban, ban cho mình hỏi 1 vấn đề nhỏ là nếu như mình truyền vào tham sô n = 10 , thì trong vòng lặp " for" nếu đem kiểm tra điều kiện n%2==0 nếu như điều kiện nay đúng tức là "n " không phải là số nguyên tố thì sau đó vòng lặp for có tiếp tục chạy câu lệnh “i++” hay không, mong bạn có thể giải thích cho mình với! cám ơn bạn rất nhiều

Về đoạn code trên: nếu n%i == 0 thì sẽ đi tới return false;return là ra khỏi hàm rồi, với false là giá trị trả về.

1 Like

Anh em cho hỏi giữa 2 cái này khác nhau như sao ạ:
1.

for (int i = 1; i <= (int)sqrt(n); i++)
for (int i = 1; i <= sqrt(n); i++)
1 Like

Khác nhau ở:

sqrt() trả về kiểu số thực (double).(int) là ép về số nguyên rồi so sánh. Nếu không ép thì nó tự động chuyển i thành kiểu số thực.
(1) So sánh 2 số nguyên.
(2) So sánh 2 số thực.

2 Likes

Cho em hỏi sao lại return false 2 lần v ạ

2 lần ở 2 lần lọc điều kiện khác nhau.

  1. Khi nhỏ hơn 2 thì chắc chắn không phải số nguyên tố rồi. Bạn biết đấy, nhỏ hơn 2 thì bao gồm cả số âm nữa. Phần này loại bỏ tất cả số âm và số 1.
  2. Xét các số nguyên dương từ 2 và nếu nó chia hết (modulo = 0) cho số nào nhỏ hơn căn bậc 2 của số đó có nghĩa là nó không phải số nguyên tố.
2 Likes

Cho em hỏi làm sao để sử dụng kiểu bool khai báo giới tính trong mảng vậy ạ!!

nếu không có lệnh " return true " thì sao nó không chạy được hả bạn

@tonny Câu hỏi hơi tối nghĩa, bạn muốn hỏi cụ thể là gì?
Một hàm thì luôn luôn phải có kết quả trả về! Nếu kiểu trả về không phải là void.

Đã có lệnh “return false” ở trên rồi mà bạn, lệnh return true mình không thấy có điều kiện gì cả thì càn gì phải return true. Mình mới nhập môn nên hơi kém, nhờ bạn giải thích giúp

@tonny

Như mình đã nhắc trước đó. Lệnh rẽ nhánh (if) không phải lúc nào cũng chạy vào. Phải đảm bảo hàm LUÔN LUÔN có kết quả trả về.
Bạn thử chạy hàm trên khi n là 3, 5, 7, … (snt) thì nó có rơi vào nhánh nào return false không?

3 Likes

Mình hiểu ý rồi, cảm ơn bạn nhiều

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