Objective c 数字变量。如果条件没有提高
我想选择一个数字范围来更改图像视图的颜色背景 我使用iPhone的麦克风获取hz的值,该值被转换为字符串,并且该值不是固定的。Objective c 数字变量。如果条件没有提高,objective-c,ios8,Objective C,Ios8,我想选择一个数字范围来更改图像视图的颜色背景 我使用iPhone的麦克风获取hz的值,该值被转换为字符串,并且该值不是固定的。 我想从18000.000f到1899.999f之间选择一个数字 这是我的密码 if (maxHZ = 18000.000f) { Image.backgroundColor = [UIColor blackColor]; } else if(maxHZ >= 17999.999f ) { Image.backgroundColor = [UIColo
我想从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];
}
我已将您的代码更正为右键检查,因为您使用的是
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];
}
或者如果他想要黑色,如果它不在这两个范围内:
if(maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 17999.999f) {
Image.backgroundColor = [UIColor yellowColor];
} else {
Image.backgroundColor = [UIColor blackColor];
}
我已将您的代码更正为右键检查,因为您使用的是
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];
}
或者如果他想要黑色,如果它不在这两个范围内:
if(maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 17999.999f) {
Image.backgroundColor = [UIColor yellowColor];
} else {
Image.backgroundColor = [UIColor blackColor];
}
从逻辑上来说,我想,你可能会寻找这样的东西,我想:
if (maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor yellowColor];
} else if (maxHZ == 18000.000f) {
Image.backgroundColor = [UIColor blackColor];
} else if (maxHZ >= 17999.999f) {
Image.backgroundColor = [UIColor redColor];
} else {
/* do something here, otherwise you would be left without explicit color */
}
(就我个人而言,我不知道你会看到多少次黑色,因为
18000.0
和17999.999
之间的间隔是千分之一,你的输入可能不太准确,无法发现如此微小的差异。)逻辑上,我猜,你可能会寻找这样的东西,我猜:
if (maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor yellowColor];
} else if (maxHZ == 18000.000f) {
Image.backgroundColor = [UIColor blackColor];
} else if (maxHZ >= 17999.999f) {
Image.backgroundColor = [UIColor redColor];
} else {
/* do something here, otherwise you would be left without explicit color */
}
(就我个人而言,我不知道你会看到多少次黑色,因为
18000.0
和17999.999
之间的间隔是千分之一,你的输入可能不太准确,无法发现如此微小的差异。)如果(maxHZ==18000.0f){…
,也许…,您的is语句没有任何意义,因为第三个分支永远不会被调用,就好像值大于17999.999f
一样,它从第三个分支中窃取了乐趣–如果值小于17999.999f
,则必须小于18999.999f
,因此它永远不会被调用ode>if(最大赫兹=18000.000f)您没有检查maxHZ
是否等于18000.000f
您正在将其分配给maxHZ
将=
更改为=
请注意,有两个=
表示相等,而不是一个。如果您只做一个,这就是分配。@LucaTonelli,哪一个解释会给您带来困难?对不起,您的同事注释现在比较if(maxHZ==18000.0f){…
,也许…,您的is语句没有任何意义,因为第三个分支永远不会被调用,就好像值大于17999.999f
一样,它从第三个分支中窃取了乐趣–如果值小于17999.999f
,则必须小于18999.999f
,因此它永远不会被调用ode>if(最大赫兹=18000.000f)您没有检查maxHZ
是否等于18000.000f
您正在将其分配给maxHZ
将=
更改为=
请注意,有两个=
表示相等,而不是一个。如果您只做一个,这就是分配。@LucaTonelli,哪一个解释会给您带来困难?对不起,您的同事注释为compare Now,您可能希望将第一个案例更改为(maxHZ不,这是错误的,如果他这样做,即使maxHZ的值是17999.999,它也会输入到第一个语句中,但他不想这样做。测试的目的是什么?maxHZ>=17999.999f
?黑匣子很可能永远不会被调用;这个答案解决了平等/赋值问题,但仍然不完美。可能想要c把第一个案子绞死(maxHZ不,这是错误的,如果他这样做,即使maxHZ的值是17999.999,它也会输入到第一个语句中,但他不想这样做。测试的目的是什么?maxHZ>=17999.999f
?黑匣子很可能永远不会被调用;这个答案解决了平等/分配问题,但仍然不完美。