30/09/2018, 16:10
Điều kiện AND trong C++ có gì đặc biệt?
Đ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 liên quan
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 đố
@Rok_Hoang Xem đáp án của @camaptrang nhé, hố rồi
@@ ả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ệnlogic
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ũngsai(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.-> kết quả cuối cùng là:
1