Skip navigation.
 
mlRe: if statement
FROM : Andy Lee
DATE : Tue May 27 23:35:20 2008

On May 27, 2008, at 5:26 PM, Nick Zitzmann wrote:
> On May 27, 2008, at 3:24 PM, Nathan wrote:
>

>> - (IBAction)operators:(id)sender {
>>     OB=[operatorBar floatValue];
>>     if (OB=1) {
>>         [operator setFloatValue: 4];
>>     }
>>     if (OB=2) {
>>         [operator setFloatValue: 5];
>>     }
>> }
>>
>> So you would expect that if operatorBar = 1, then OB will = 1, and 
>> operator will = 4. I know the first part is ok due to testing, but 
>> what happens when I run the program is that it acts like the if's 
>> don't exist, so upon using operators method operator will equal 5 
>> no matter what. What's wrong here?

>
>
> In C, a single = is an assignment; a double == is a check for 
> equality.


Yup, and an assignment expression (like OB=2) evaluates to the value 
that was assigned (in this caes, 2).

And conditionals in C treat 0 as false, and treat non-zero as true, 
which is why both of your ifs always evaluate to true.

--Andy

Related mailsAuthorDate
mlif statement Nathan May 27, 23:24
mlRe: if statement Nick Zitzmann May 27, 23:26
mlRe: if statement Wayne Packard May 27, 23:27
mlRe: if statement Nathan May 27, 23:28
mlRe: if statement Nathan May 27, 23:29
mlRe: if statement Nathan May 27, 23:31
mlRe: if statement Scott Ribe May 27, 23:32
mlRe: if statement Andy Lee May 27, 23:35
mlRe: if statement Nathan May 27, 23:35
mlRe: if statement Nathan May 27, 23:35
mlRe: if statement Randall Meadows May 27, 23:37
mlRe: if statement Bob Smith May 27, 23:45
mlRe: if statement Sherman Pendley May 28, 00:04
mlRe: if statement Graham Cox May 28, 02:11
mlRe: if statement Jens Alfke May 28, 05:52
mlRe: if statement Sean McBride May 28, 16:45
mlRe: if statement Sherm Pendley May 28, 17:21