我的循环代码有问题,并且无法正常工作吗?

时间:2020-05-18 19:17:04

标签: javascript

已要求我提示您输入当前体重和目标体重。该循环应计算在每周减少1.38的情况下达到目标体重需要多少周。我的提示有效,但是循环中断了javascript。我的代码在下面,有人可以帮我吗?顺便说一下,我是javscript的新手。

 var current_weight = prompt("Please enter your current weight",0.0);
 var target_weight = prompt("Please enter your target weight",0.0);
 var weeks = 0;

 if(current_weight > 0 target_weight > 0){
     if(current_weight > target_weight){
     while(current_weight <= target weight){
         var current_weight =  current_weight – 1.38;
          weeks = weeks + 1;
         alert("it will take" + weeks + "weeks to hit target");
      }
 }

 else if(current_weight > 0 && target_weight > 1){
     alert("Current weight must be more than target weight");
 }


 else{ 
     alert("Input error")
 }

</script>

循环中断了javascript。

1 个答案:

答案 0 :(得分:1)

您的代码中有4个问题:

  • 在第一个if语句的条件之间缺少&&运算符

  • 提示将用户输入的值作为字符串返回。因此您不能从1.38中减去current_weight,因为current_weight是一个字符串。您需要将用户输入的值转换为数字

  • 您的代码中存在逻辑错误。您具有此if语句if(current_weight > target_weight),并且如果它的评估结果为true,则while loop将检查while(current_weight <= target weight),这与包装if语句的条件相反。因此,您的循环将永远不会运行。您可能希望循环条件为current_weight > target_weight

  • 警报应该在while循环之外

var current_weight = Number(prompt("Please enter your current weight", 0.0));
var target_weight = Number(prompt("Please enter your target weight", 0.0));
var weeks = 0;

if (current_weight > 0 && target_weight > 0) {

  if (current_weight > target_weight) {
    while (current_weight > target_weight) {
      current_weight = current_weight - 1.38;
      weeks = weeks + 1;
    }

    alert("it will take" + weeks + "weeks to hit target");

  } else if (current_weight > 0 && target_weight > 1) {
    alert("Current weight must be more than target weight");
  } else {
    alert("Input error");
  }
}