当我输入的值超过18.5时,它表示正常,但任何正常工作。如何设置If和Else语句?
我是C语言在线课程的学生,我必须做一个程序来计算某人的BMI并显示他们的“正常”,“超重”等。
var html_doc = "<div>" + "<Button id = obj1> Click" + "</Button> " + "</div>";//instead of click put ur code
var div1 = $("#infoDiv");
div1.append(html_doc);
$(document).ready(function() {
$("#obj1").click(function() {
alert("Hello!");
});
});
任何大于18.5的值都不会打印正确的If / Else语句,但是下面的任何内容都会
答案 0 :(得分:3)
像这样的表达式:
bmi >= 18.5 <= 24
不按照您认为的做。它应写为:
bmi >= 18.5 && bmi <= 24
更详细地,将错误的表达式视为类似于(1):
(bmi >= 18.5) <= 24
其中bmi >= 18.5
为您提供一个true/false
的值,表示为1/0
。然后将此1
或0
与24
进行比较,这就是为什么您似乎得到奇怪结果的原因。
实际上,您真的不需要检查范围的两端,因为可能性涵盖了整个输入值集。我会建议类似的东西(排除了常见的东西):
printf("Your health status is ");
if (bmi <= 18.5) puts("underweight"); // [-inf, 18.5]
else if (bmi <= 24.0) puts("normal"); // (18.5, 24.0]
else puts("overweight"); // (24.0, +inf]
(1)我说“有点像”,因为它取决于评估顺序,此刻我可以不去抬头。首先,它只是确定您将看到的哪些奇怪的行为,其次,如果您只使用正确的表达式:-)
,就不必担心它了。答案 1 :(得分:0)
条件如下:
if (bmi >= 18.5 <= 24)
应该是
if ((bmi >= 18.5) && (bmi <= 24))
请检查整个代码。
答案 2 :(得分:0)
这里的问题是您的if条件
if (bmi >= 18.5 <= 24)
在这种情况下,我们可以将其除以((bmi> = 18.5)<= 24),假设:A =(bmi> = 18.5),此等式将得到的值为1或0(对或错)它将使条件(A <= 24)始终为真。因此,在您的程序中,它总是进入第一个if条件。 要解决此问题,您的程序应编写如下:
if((bmi >= 18.5) && (bmi <= 24)) {
printf("Your Health Status is Normal \n");
} else {
// Continue write your code in here...
}