比较运算符未按预期运行

sud*_*-rf 0 iphone comparison objective-c

我有一组检查来执行某些任务.

// tempDouble is a (double), hour is an int

if (tempDouble > 60.0 && (hour >= 6 || hour <= 17)) { //CLEAR
    NSLog(@"CLEAR");
} 

else if (tempDouble > 60.0 && (hour < 6 || hour > 17)) { //NIGHT_CLEAR
    NSLog(@"NIGHT_CLEAR");
}

else if (tempDouble <= 60.0 && (hour >= 6 || hour <= 17)) { //CLOUDY
    NSLog(@"CLOUDY");
}

else if (tempDouble > 60.0 && (hour < 6 || hour > 17)) { //NIGHT_CLOUDY
    NSLog(@"NIGHT_CLOUDY"); 
}
Run Code Online (Sandbox Code Playgroud)

例如,当我的温度为76.3和1小时2时,我希望它会跳转到NIGHT_CLEAR,但它实际上是CLEAR.我错误地设置了比较吗?

提前感谢您提出这个简单的问题!

Mat*_*hen 6

(hour >= 6 || hour <= 17)
Run Code Online (Sandbox Code Playgroud)

总是如此.所有实数都大于或等于6或小于或等于17(有些都是).我想你想要:

(hour >= 6 && hour <= 17)
Run Code Online (Sandbox Code Playgroud)

这同样适用于CLOUDY.