mm*****@gmail.com writes:
I had a noobie question:
i = 0;
while (len i) && (SOME_VAL != arr [i])
i++;
In the above snippet if len is the number of elements in arr, when i ==
len, since the first condition fails, will the second one not be
evaluated at all?
Hope to hear from someone out there. Thanks.
Quick answer: Yes. But read on.
The second condition won't be evaluated because the code you posted
won't even compile. You have to enclose the entire condition in a
while statement in parentheses; you haven't done that.
When you post code here, it's (almost) always best to try compiling it
first, and to copy-and-paste the exact code that you compiled.
Otherwise, you risk accidentally introducing irrelevant errors (typos
or whatever) that can obscure what you're actually asking about. If
possible, you should post an entire compilable program, not just a
code fragment, so we can try it ourselves if necessary. It happens in
this case that the error you made (the missing parentheses) was
trivial, and the problem you're actually asking about was still
obvious, but that's not always going to be true.
Finally, your question is really about how the "&&" operator works.
Any decent C textbook will answer this question for you. We're happy
to help here, but it's easier for everyone if you can just look it up.
The comp.lang.c FAQ is at <http://www.c-faq.com>. Section 18 has
references to several good book. (K&R2 is widely considered to be the
best C tutorial; H&S5 is a good reference; see 18.10 to find out what
those abbreviations mean.) (BTW, the FAQ incorrectly says that H&S is
in its 4th edition; it's actually in its 5th.)
--
Keith Thompson (The_Other_Keith)
ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.