已要求我提示您输入当前体重和目标体重。该循环应计算在每周减少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。
答案 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");
}
}