Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Mar 27, 2000

Avoid Assignments Inside an If Condition

An assignment expression can appear inside an if condition:

 
  if (x = getval() )
  {
    // do someting
  }

The if condition is evaluated in two steps: first, the unconditional assignment to x takes place. Then, x is checked. The if block is executed only if x's value (after the assignment) isn't zero. Although this technique can save you a few keystrokes, it's highly dangerous and should be avoided. The problem is that one can easily mistake == for = or vice versa. For this reason, several compilers issue a warning message if you place an assignment expression inside an if condition, to draw your attention to a potential bug. If you need to assign a value and test the result, separate these two steps into two distinct statements as follows:

 
  x = getval();
  if (x)
  {
    // do someting
  }

This way, you document your intention more clearly and avoid this potential bug.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date