Đoạn chương trình này in ra cái gì và tại sao
int i=0;
bool t=true;
bool f=false;
bool b;
b=(t && ((i++) == 0));
b=(f && ((i+=2) > 0));
cout << i;
Có một bạn hỏi trên facebook thế này, Đạt thấy hay đem đố các bạn.
Đoạn chương trình này in ra cái gì và tại sao
int i=0;
bool t=true;
bool f=false;
bool b;
b=(t && ((i++) == 0));
b=(f && ((i+=2) > 0));
cout << i;
Có một bạn hỏi trên facebook thế này, Đạt thấy hay đem đố các bạn.
Bài này mình hỏi trên Page biết rồi nhá
. Để cho mấy bạn sau trả lời.
in ra 1 do f = false nên biểu thức bên phải && ko dc thực hiện
in ra 3
phép cộng mà anh Đạt cũng đố
@@ ảo zị. Phép == và phép > làm thay đổi giá trị của i luôn
Đặc điểm của phép && là khi kiểm tra điều kiện logic thì nếu có 1 điều kiện sai (false) thì nó dừng các phép sau (Dù kiểm tra đi nữa thì nó cũng sai(false) mà
)
Tương tự như vậy, phép || nó cũng kiểm tra điều kiện. Khi gặp điều kiện đúng thì nó cũng không kiểm tra biểu thức sau nữa.
Vì thế:
t=true nên nó tiếp tục kiểm tra. Và biểu thức sau dc thực hiện.f=false nên biểu thức sau không được thực hiện để kiểm tra nữa.1
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?