Objective-C变量比较是如何工作的?

Objective-C变量比较是如何工作的?,objective-c,comparison,Objective C,Comparison,我有一些目标C,我不理解变量比较运算符: if ([bmiView.text floatValue] < 18.50) { classification.text = @"Underweight"; bmiImageView.image = [UIImage imageNamed:@"underweight.png"]; } if ([bmiView.text floatValue] > 18.50 < 24.99) { classification.t

我有一些目标C,我不理解变量比较运算符:

if ([bmiView.text floatValue] < 18.50) {
    classification.text = @"Underweight";
    bmiImageView.image = [UIImage imageNamed:@"underweight.png"];
}
if ([bmiView.text floatValue] > 18.50 < 24.99) {
    classification.text = @"Healthy";
    bmiImageView.image = [UIImage imageNamed:@"healthy.png"];
}
if ([bmiView.text floatValue] > 25 < 29.99) {
    classification.text = @"Overweight";
    bmiImageView.image = [UIImage imageNamed:@"overweight.png"];
}
if ([bmiView.text floatValue] > 30 < 39.99) {
    classification.text = @"Obese";
    bmiImageView.image = [UIImage imageNamed:@"obese.png"];
}
if ([bmiView.text floatValue] > 40) {
    classification.text = @"Very Obese";
    bmiImageView.image = [UIImage imageNamed:@"veryobese.png"];
}
if([bmiView.text floatValue]<18.50){
classification.text=@“体重不足”;
bmiImageView.image=[UIImage ImageName:@“underweight.png”];
}
如果([bmiView.text floatValue]>18.50<24.99){
classification.text=@“健康”;
bmiImageView.image=[UIImage ImageName:@“health.png”];
}
如果([bmiView.text floatValue]>25<29.99){
classification.text=@“超重”;
bmiImageView.image=[UIImage ImageName:@“awerweight.png”];
}
如果([bmiView.text floatValue]>30<39.99){
classification.text=@“肥胖”;
bmiImageView.image=[UIImage ImageName:@“obety.png”];
}
如果([bmiView.text floatValue]>40){
classification.text=@“非常肥胖”;
bmiImageView.image=[UIImage ImageName:@“veryobese.png”];
}
每次我运行应用程序时,当用户的体重指数超过40.00时,唯一有效的分类是“非常肥胖”。任何其他BMI都会导致下面的分类“肥胖”,即BMI介于30.00和39.99之间。为什么不起作用

if ([bmiView.text floatValue] > 18.50 < 24.99) {
旁注,
[bmiView.text floatValue]>18.50<24.99
所做的是将floatValue与
18.5
进行比较,根据结果是真是假生成1或0。然后比较0/1是否小于24.99,这总是正确的


旁注,
[bmiView.text floatValue]>18.50<24.99
所做的是将floatValue与
18.5
进行比较,根据结果是真是假生成1或0。然后,如果0/1小于24.99,它将继续进行比较,这总是正确的。

看起来您的比较应该更像:

if ([bmiView.text floatValue] > 25 && [bmiView.text floatValue] < 29.99) {
    classification.text = @"Overweight";
    bmiImageView.image = [UIImage imageNamed:@"overweight.png"];
}
if([bmiView.text floatValue]>25&&bmiView.text floatValue]<29.99){
classification.text=@“超重”;
bmiImageView.image=[UIImage ImageName:@“awerweight.png”];
}

看起来您的比较应该更像:

if ([bmiView.text floatValue] > 25 && [bmiView.text floatValue] < 29.99) {
    classification.text = @"Overweight";
    bmiImageView.image = [UIImage imageNamed:@"overweight.png"];
}
if([bmiView.text floatValue]>25&&bmiView.text floatValue]<29.99){
classification.text=@“超重”;
bmiImageView.image=[UIImage ImageName:@“awerweight.png”];
}

我不知道为什么投票被否决。这个问题的提问者显然是在试图理解这个问题。它是本地化的。在XCode中进行BMI分类谷歌搜索的人希望登陆本网站,并阅读某人的帖子,了解每个变量的比较必须详细说明。正是这种东西会杀死StackOverflow,让它成为一个获取所需信息的网站。约阿希姆·伊萨克森(Joachim Isaksson)的精彩回应是,向我们萌芽的头脑传授习得的无助感。为什么要自己找到答案?我只是想弄清楚为什么我的代码不能正常工作。我来这里并不是为了学习BMI分类或我的拼写。我真的不知道用><来表示“大于但小于”是行不通的。我一直在试图找到一个我显然找不到的答案。我来这里是因为我知道这里的人可以帮我解决问题。我学到了一些新的东西,我很高兴有人能帮助我。这就像一个孩子通过给父母书并说:“为我读这本书,并用手势向我表达想法来学习如何阅读。”。这孩子没有学习。这是学习无助。我考虑到了你们的最大利益,你们并没有学会解决问题。读这篇()然后去做,否则你永远都不会成为程序员。顺便说一句,这不是关于xcode的问题。这是关于objective-c(可能还有iOS)。。。。为您更改标签。:)我不知道为什么会被否决。这个问题的提问者显然是在试图理解这个问题。它是本地化的。在XCode中进行BMI分类谷歌搜索的人希望登陆本网站,并阅读某人的帖子,了解每个变量的比较必须详细说明。正是这种东西会杀死StackOverflow,让它成为一个获取所需信息的网站。约阿希姆·伊萨克森(Joachim Isaksson)的精彩回应是,向我们萌芽的头脑传授习得的无助感。为什么要自己找到答案?我只是想弄清楚为什么我的代码不能正常工作。我来这里并不是为了学习BMI分类或我的拼写。我真的不知道用><来表示“大于但小于”是行不通的。我一直在试图找到一个我显然找不到的答案。我来这里是因为我知道这里的人可以帮我解决问题。我学到了一些新的东西,我很高兴有人能帮助我。这就像一个孩子通过给父母书并说:“为我读这本书,并用手势向我表达想法来学习如何阅读。”。这孩子没有学习。这是学习无助。我考虑到了你们的最大利益,你们并没有学会解决问题。读这篇()然后去做,否则你永远都不会成为程序员。顺便说一句,这不是关于xcode的问题。这是关于objective-c(可能还有iOS)。。。。为您更改标签。:)
if ([bmiView.text floatValue] > 25 && [bmiView.text floatValue] < 29.99) {
    classification.text = @"Overweight";
    bmiImageView.image = [UIImage imageNamed:@"overweight.png"];
}