Các loại Bool nhỏ hơn các loại Int, do đó sử dụng ít bộ nhớ hơn. Tùy thuộc vào hệ thống bạn đang biên dịch trên / for, một Int có thể là 4 - 8 byte, trong khi Bool là 1 byte (như có thể thấy trong bài viết MSDN này )
Kết hợp điều này với một số khía cạnh của KISS và thiết kế chương trình tốt, và rõ ràng lý do tại sao nên sử dụng một bool để lưu trữ một biến sẽ chỉ có 2 giá trị.
Tại sao quá phức tạp mọi thứ với một đối tượng có thể lưu trữ một loạt các giá trị, khi bạn chắc chắn rằng bạn chỉ cần lưu trữ 1 trong 2 giá trị khác nhau?
Điều gì xảy ra trong hệ thống sử dụng int, nếu bạn lưu trữ 75 trong đó? Nếu bạn đã thêm điều kiện bổ sung
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
hoặc là
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
sau đó bạn được bảo vệ cho tình huống này. Nhưng nếu bạn không, thì bạn không.
Bạn cũng có thể có một trường hợp (tùy thuộc vào cách bạn thay đổi giá trị của int) nơi bạn có bộ đệm tràn và giá trị "đặt lại" trở về 0 hoặc giới hạn dưới của int của bạn (có thể ở đâu đó trong vùng từ -127 đến ,9,223,372,036,854,775,808, tùy thuộc vào kiến trúc mục tiêu của bạn ) điều gì xảy ra trong mã của bạn sau đó?
Tuy nhiên, nếu bạn đã sử dụng một bool, bạn có thể sử dụng một cái gì đó như thế này:
if(continueBool == true)
return true;
else
return false;
Hoặc thậm chí:
return (continueBool== true) ? true : false;
hoặc thậm chí:
return continueBool;
Tùy thuộc vào trình biên dịch của bạn, có thể có các tối ưu hóa mà nó có thể thực hiện trên mã sử dụng Bools để lưu trữ các giá trị đúng / sai được ánh xạ. Trong khi đó, có thể không có tối ưu hóa mà nó có thể thực hiện cho Ints được sử dụng để lưu trữ các giá trị đúng / sai được ánh xạ.
Chúng ta cũng phải nhớ rằng C ++ (cùng với C, hội và FORTRAN) được sử dụng để viết mã hiệu quả cao, nhỏ và nhanh. Vì vậy, sẽ tốt hơn nếu sử dụng Bool trong trường hợp này - đặc biệt nếu bạn đang được đánh dấu về việc sử dụng biến, bộ nhớ, bộ đệm hoặc thời gian xử lý của bạn.
Một câu hỏi tương tự sẽ là: tại sao tôi sẽ lưu trữ một số nguyên (giá trị) trong một float? Trả lời: Bạn không nên, vì không có điểm nào.
Câu chuyện dài: Khi giáo viên / gia sư / giảng viên / giáo sư của bạn vượt qua các kích cỡ của các loại giá trị khác nhau với bạn (trong trường hợp bạn bỏ lỡ nó) và tại sao chúng lại quan trọng trong Phát triển phần mềm.
Tôi hy vọng điều đó sẽ giúp ích như một điểm khởi đầu (tôi cũng hy vọng rằng nó không xuất hiện dưới dạng mô phạm)
int
là lưu trữ một số nguyên và mục đích của abool
là lưu trữ giá trị boolean (true
hoặcfalse
). Sử dụngbool
IMO phản ánh việc sử dụng nó tốt hơn nhiều so với sử dụngint
.