30/09/2018, 22:58
Hỏi Cách sử dụng while trong C & C++
cách code
while (0> luachonmenu >4 )
{
}
có dc xem là đúng ko hay phải code thành 2 dòng :
while ( luachonmenu <0 )
{
}
và
while ( luachonmenu >4 )
{
}
p/s: gà mờ mới học ạ ~,~
Bài liên quan
while (0 < luachonmenu && luachonmenu < 4 )
Menu theo mình là từ số 1 đến số 3
Nếu bạn dùng vòng lặp để cho người dùng nhập vào cho đến khi nào đúng thì ngoài vòng while có thể dùng vòng
do{} while();
Đây là 1 câu hỏi khá hay và nếu không cẩn thận rất dễ sai. Với trường hợp cần kiểm tra điều kiện kẹp như trên, bạn hãy viết tách biệt ra
Tại sao lại phải viết như vậy, mình sẽ lấy 1 ví dụ khác, giả sử có câu lệnh điều kiện sau:
Vậy trường hợp này, theo bạn kết quả sẽ là gì? Căn cứ vào đâu để biết kết quả sẽ thế nào? 1 phút suy nghĩ bắt đầu
mình mới học C chưa rành C++ nhưng mình đoán là “wrong” phải ko =))
tks bạn mà bạn có thể giải thích mình hiểu sao trường phải này dùng do…while tốt hơn while ko ? hay dùng cái nào cũng dc.
Với trường hợp này thì C và C++ như nhau, và câu trả lời là right
bạn giải thích cho mình dc ko
Vậy C/C++ tính giá trị của điều kiện này như thế nào, tại sao:
lại cho ra kết quả logic là true? Biểu thức này có tương đương với
hay tương đương với 1 biểu thức nào khác.
Câu trả lời là biểu thức trên tương đương với 1 biểu thức tính toán thông thường, và các toán tử <, > được xem xét như các dấu phép toán +, -, *, / mà thôi. Với độ ưu tiên của phép toán lớn hơn ( > ) và bé hơn ( < ) là như nhau, biểu thức được tính từ trái qua phải:
3 > 8 = failed ~ 0 ( c/c++ chưa rạch ròi giữa biến logic và biến nguyên, faied được hiểu là 0, và true là #0, thường là 1 luôn)
tiếp đó biểu trở thành:
Và hiển nhiên là giá trị cuối cùng là true.
Mình sẽ ví dụ cho dễ hiểu nhé:
Và
Như vậy sử dụng vòng
do{}while();
sẽ giảm bớt một phép so sánh trong trường hợp này. Và nó dễ hiểu hơn.chỉ ngắn ngọn hơn thôi hả bạn, nếu mình chỉ luôn sử dụng while(); có dc ko
Tất nhiên là được. Nhưng nhiều trường hợp thì dùng
do{} while();
sẽ thuận tiện và đỡ tốn thời gian hơn.Một ví dụ đơn giản, bạn cần viết 100 vòng lặp. nếu dùng
do{} while();
thay chowhile()
, bạn sẽ giảm bớt được 100 dòng so sánh thì bạn sẽ chọn cái nào?đã thông não tks nhé
Không có gì .
Dĩ nhiên phải chú ý là khi dùng do { } while() thì vòng lặp chắc chắn được thực hiện ít nhất 1 lần, do vậy bạn phải check xem ngay ở lần thực hiện đầu tiên điều kiện có thoả mãn hay không, vì ở lần đầu thực hiện điều kiện ko dc kiểm tra