数字变量.如果条件不提高

Luc*_*lli 0 objective-c ios8

我想选择一个数字范围来改变图像视图的颜色背景.

我用我的iPhone麦克风取hz的值,这个值是转换为字符串,值不固定.
我想选择一个18000.000f到1899.999f的数字.

这是我的代码

if (maxHZ = 18000.000f) {
   Image.backgroundColor = [UIColor blackColor];
} else if(maxHZ >= 17999.999f ) {
    Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 18999.999f) {
    Image.backgroundColor = [UIColor yellowColor];
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*mot 5

我已经纠正了你的代码以正确检查,因为你正在使用else if它,它不会进入最后一个语句,因为如果最后一个是真的,那么第二个也是如此.

if (maxHZ == 18000.000f) {
   Image.backgroundColor = [UIColor blackColor];
} else if(maxHZ >= 17999.999f && maxHZ < 18999.999f ) {
    Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 18999.999f) {
    Image.backgroundColor = [UIColor yellowColor];
}
Run Code Online (Sandbox Code Playgroud)

正如评论中所说,你应该删除第一个声明.它有0.000000001%的机会进入里面.

if(maxHZ >= 18999.999f) {
    Image.backgroundColor = [UIColor redColor];
} else {
    Image.backgroundColor = [UIColor yellowColor];
}
Run Code Online (Sandbox Code Playgroud)

或者如果他想要黑色,如果它不在那两个范围的以太中:

if(maxHZ >= 18999.999f) {
    Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 17999.999f) {
    Image.backgroundColor = [UIColor yellowColor];
} else {
    Image.backgroundColor = [UIColor blackColor];
}
Run Code Online (Sandbox Code Playgroud)

  • 好伙计们?:d (2认同)