如果我的数字变量超过某个值,则if和else语句不起作用

时间:2019-02-07 06:50:35

标签: c

当我输入的值超过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语句,但是下面的任何内容都会

3 个答案:

答案 0 :(得分:3)

像这样的表达式:

bmi >= 18.5 <= 24

按照您认为的做。它应写为:

bmi >= 18.5 && bmi <= 24

更详细地,将错误的表达式视为类似于(1)

(bmi >= 18.5) <= 24

其中bmi >= 18.5为您提供一个true/false的值,表示为1/0。然后将此1024进行比较,这就是为什么您似乎得到奇怪结果的原因。


实际上,您真的不需要检查范围的两端,因为可能性涵盖了整个输入值集。我会建议类似的东西(排除了常见的东西):

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...
}