I'm having trouble with the if statement. I have verified with print statements that (int)strings_line_tokens[l][m] == 0. I thought maybe my logic was backwards since I had two not statements with an or, so I changed it to an and. That didn't help either.

if((int)strings_line_tokens[l][m] != 10 || (int)strings_line_tokens[l][m] != 0)
    error_on_flag[strings_special_token_incrementer] = 1;
    //printf ("setting  error_on_flag[strings_special_token_incrementer] = 1 \n");

strings_line_tokens[l][m] is 0
setting  error_on_flag[strings_special_token_incrementer] = 1
3 Years
Discussion Span
Last Post by Moschops

if((int)strings_line_tokens[l][m] != 10 || (int)strings_line_tokens[l][m] != 0)

This says: if (true) There is no number in the universe for which this statement doesn't come out true.

The first part comes out as true for everything that isn't 10. For the one case where the value you're testing is 10, the second part comes out as true.

What are you actually trying to do? Under what circumstances do you want the contents of the if block to run?

Edited by Moschops


I like it when you ask it that way :).

When I have a 10 or 0. I figured I mixed up the logic and changed the or to an and but that didn't fix the problem.


When I have a 10 or 0.

if((int)strings_line_tokens[l][m] == 10 || (int)strings_line_tokens[l][m] == 0)

This if block will execute when (int)strings_line_tokens[l][m] is 10.
This if block will execute when (int)strings_line_tokens[l][m] is 0.

For all other values of (int)strings_line_tokens[l][m], the if block will not execute.

Edited by Moschops

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.