title: Why is the output 0 (=false)?
body: <p>I'm exercising opreators in C++ and I don't understand the output of the code bellow</p>
  <pre><code>int x = 21, z = 33, y = 43;
  cout &lt;&lt; (!(z &lt; y&amp;&amp; x &lt; z) || !(x = z - y)) &lt;&lt; endl;
  </code></pre>
  <p>I wrote it with the thought to be true and I understand it as &quot;it's not the case z is less than y and x is less than z (which is false) or it's not the case x is equal to the difference of z and y (which is true)&quot; so I expected output 1 (=true) and I'm confused that's not the case. Can you explain me where I'm making a mistake?</p>
  <p>edit: Thanks for the answers, it's funny how I made such trivial mistakes I actually read about.</p>