忽略条件语句
Conditional Statement ignored
我目前正在尝试开发一个简单的移动应用程序来计算您的 BMI、BMR 等
有两个单独的公式可以计算男性和女性的 BMR。
男性:66+(13.7 * 体重)+(5 * 身高 * 100)-(6.8 * 年龄)
女性:655+(9.6 * 体重)+(1.8 * 身高 * 100)-(4.7 * 年龄)
问题:
我使用了 if else 语句,如果用户单击表单页面上的 "male" 单选按钮,应用程序将识别用户是男性并使用男性 BMR 公式来计算他的 BMR。男性BMR计算正常,结果显示在calculateinput.html页面
例如如果体重=100,身高=2,年龄=18,性别=男性,我将得到 2313.6 作为 BMR,这是正确的。
但是,如果我点击表单页面上的 "female" 单选按钮,应用程序仍然使用男性 BMR 公式,而不是女性 BMR 公式来计算她的 BMR。
如果体重=100,身高=2,年龄=18,性别=女性,我仍然会得到 2313.6,这是不正确的。
似乎我的代码忽略了用户的性别输入并应用了男性 BMR 公式,而不管表单页面上广播的性别,尽管我有 if else 语句...
有人可以指出并指出我犯了什么错误吗?
感谢您的解释!
下面是我在 common.js
的代码
function bmr(gender, height, weight, age){
var calculatedbmr;
if (gender="male"){
calculatedbmr=66+(13.7 * weight)+(5 * height * 100)-(6.8 * age);
}
else if(gender="female"){
calculatedbmr=655+(9.6 * weight)+(1.8 * height * 100)-(4.7 * age);
}
return calculatedbmr;
}
下面是我显示结果页面的代码。(名为calculateinput.html)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<link rel="stylesheet" href="js/jquery.mobile-1.4.5.min.css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="common.js"></script>
<script type="text/javascript">
var mybmi = localStorage.getItem("bmi");
var weightcategory;
if (mybmi<18.5){
weightcategory = "Underweight";
}
else if ((mybmi>=18.5)&&(mybmi<=24.99)){
weightcategory = "Normal Weight";
}
else if ((mybmi>=25)&&(mybmi<=29.99)){
weightcategory = "Overweight";
}
else if ((mybmi>=30)&&(mybmi<=34.99)){
weightcategory = "Class 1 Obesity";
}
else if ((mybmi>=35)&&(mybmi<=39.99)){
weightcategory = "CLass 2 Obesity";
}
else if (mybmi>=40){
weightcategory = "Morbidly Obese";
}
var theloseorgainmessagethatappears = localStorage.getItem("loseorgain");
var theweightdifference = localStorage.getItem("weightdifference");
var thebmrrate = localStorage.getItem("bmrrate");
</script>
</head>
<body>
<div data-role="page" id="mainpage">
<div data-role="header">
<a href="#" onclick="home()" class="ui-btn ui-icon-home ui-btn-icon-left">Home</a>
<h1>BMI Calculator</h1>
</div>
<div data-role="main" class="ui-content">
<b>Your Results:</b><br><br>
Your weight category: <script>document.write(weightcategory)</script><br><br>
Your BMI is : <script>document.write(mybmi)</script><br><br>
<script>document.write(theloseorgainmessagethatappears)</script><br><br>
Your BMR is : <script>document.write(thebmrrate)</script> <br><br>
Weight Difference: <script>document.write(theweightdifference)</script>
</div>
<div data-role="footer" style="text-align:center;">
Developed by The Dom
</div>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
下面是用户输入的表单页面的代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/projectindex.css">
<link rel="stylesheet" href="js/jquery.mobile-1.4.5.min.css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="common.js"></script>
<script type="text/javascript">
function calculate(){
var bmi = bodymassindex(document.bmiform.height.value, document.bmiform.weight.value);
localStorage.setItem("bmi",bmi);
var loseorgain = loseorgainmessage(document.bmiform.weight.value, document.bmiform.dreamweight.value);
localStorage.setItem("loseorgain",loseorgain);
var weightdifference = myweightdifference(document.bmiform.weight.value, document.bmiform.dreamweight.value);
localStorage.setItem("weightdifference",weightdifference);
var bmrrate = bmr(document.bmiform.gender.value, document.bmiform.height.value, document.bmiform.weight.value, document.bmiform.age.value);
localStorage.setItem("bmrrate",bmrrate);
document.bmiform.submit();
}
</script>
</head>
<body>
<div data-role="page" id="bmicalculator">
<div data-role="header">
<a href="#" onclick="home()" class="ui-btn ui-icon-home ui-btn-icon-left">Home</a>
<h1>BMI Calculator</h1>
</div>
<div data-role="main" class="ui-content">
Enter your height and weight. The system will calculate your BMI:<br><br>
<form id="bmiform" name="bmiform" action="calculateinput.html">
<label for="height">Height</label>
<input type="text" name="height" id="height" value="enter height in meters">
<label for="weight">Weight</label>
<input type="text" name="weight" id="weight" value="enter weight in KG">
<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Gender</legend>
<label for="male">Male</label>
<input type="radio" name="gender" id="male" value="male" checked>
<label for="female">Female</label>
<input type="radio" name="gender" id="female" value="female">
</fieldset>
<label for="dreamweight">Dream Weight</label>
<input type="text" name="dreamweight" id="dreamweight" value="enter dream weight in KG">
<label for="age">Age</label>
<input type="text" name="age" id="age" value="enter age">
<label for="exercisefrequency">Exercise Frequency</label>
<select name="exercisefrequency" id="exercisefrequency">
<option value="hardlyexercise">Hardly Exercise</option>
<option value="exercise1to3timesaweek">Exercise 1 to 3 times a week</option>
<option value="exercise3to5timesaweek">Exercise 3 to 5 times a week</option>
<option value="exercise6to7timesaweek">Exercise 6 to 7 times a week</option>
<option value="intensiveexercisemorethan7timesaweek">Intensive Exercise more than 7 times a week</option>
</select><br>
<input type="button" value="Calculate" onclick="calculate()">
</form>
</div>
<div data-role="footer" style="text-align:center;">
Developed by The Dom
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</div>
</body>
</html>
您在 if
语句中使用赋值而不是相等性检查。
替换:
if (gender="male"){
else if(gender="female"){
与:
if (gender==="male"){
else if(gender==="female"){
使用“==”代替这个“=”进行比较。 '=' 用于将 thr rhs 变量分配给 lhs 变量,'==' 用于比较。
我目前正在尝试开发一个简单的移动应用程序来计算您的 BMI、BMR 等
有两个单独的公式可以计算男性和女性的 BMR。
男性:66+(13.7 * 体重)+(5 * 身高 * 100)-(6.8 * 年龄)
女性:655+(9.6 * 体重)+(1.8 * 身高 * 100)-(4.7 * 年龄)
问题: 我使用了 if else 语句,如果用户单击表单页面上的 "male" 单选按钮,应用程序将识别用户是男性并使用男性 BMR 公式来计算他的 BMR。男性BMR计算正常,结果显示在calculateinput.html页面
例如如果体重=100,身高=2,年龄=18,性别=男性,我将得到 2313.6 作为 BMR,这是正确的。
但是,如果我点击表单页面上的 "female" 单选按钮,应用程序仍然使用男性 BMR 公式,而不是女性 BMR 公式来计算她的 BMR。 如果体重=100,身高=2,年龄=18,性别=女性,我仍然会得到 2313.6,这是不正确的。
似乎我的代码忽略了用户的性别输入并应用了男性 BMR 公式,而不管表单页面上广播的性别,尽管我有 if else 语句...
有人可以指出并指出我犯了什么错误吗? 感谢您的解释!
下面是我在 common.js
的代码function bmr(gender, height, weight, age){
var calculatedbmr;
if (gender="male"){
calculatedbmr=66+(13.7 * weight)+(5 * height * 100)-(6.8 * age);
}
else if(gender="female"){
calculatedbmr=655+(9.6 * weight)+(1.8 * height * 100)-(4.7 * age);
}
return calculatedbmr;
}
下面是我显示结果页面的代码。(名为calculateinput.html)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<link rel="stylesheet" href="js/jquery.mobile-1.4.5.min.css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="common.js"></script>
<script type="text/javascript">
var mybmi = localStorage.getItem("bmi");
var weightcategory;
if (mybmi<18.5){
weightcategory = "Underweight";
}
else if ((mybmi>=18.5)&&(mybmi<=24.99)){
weightcategory = "Normal Weight";
}
else if ((mybmi>=25)&&(mybmi<=29.99)){
weightcategory = "Overweight";
}
else if ((mybmi>=30)&&(mybmi<=34.99)){
weightcategory = "Class 1 Obesity";
}
else if ((mybmi>=35)&&(mybmi<=39.99)){
weightcategory = "CLass 2 Obesity";
}
else if (mybmi>=40){
weightcategory = "Morbidly Obese";
}
var theloseorgainmessagethatappears = localStorage.getItem("loseorgain");
var theweightdifference = localStorage.getItem("weightdifference");
var thebmrrate = localStorage.getItem("bmrrate");
</script>
</head>
<body>
<div data-role="page" id="mainpage">
<div data-role="header">
<a href="#" onclick="home()" class="ui-btn ui-icon-home ui-btn-icon-left">Home</a>
<h1>BMI Calculator</h1>
</div>
<div data-role="main" class="ui-content">
<b>Your Results:</b><br><br>
Your weight category: <script>document.write(weightcategory)</script><br><br>
Your BMI is : <script>document.write(mybmi)</script><br><br>
<script>document.write(theloseorgainmessagethatappears)</script><br><br>
Your BMR is : <script>document.write(thebmrrate)</script> <br><br>
Weight Difference: <script>document.write(theweightdifference)</script>
</div>
<div data-role="footer" style="text-align:center;">
Developed by The Dom
</div>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
下面是用户输入的表单页面的代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/projectindex.css">
<link rel="stylesheet" href="js/jquery.mobile-1.4.5.min.css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="common.js"></script>
<script type="text/javascript">
function calculate(){
var bmi = bodymassindex(document.bmiform.height.value, document.bmiform.weight.value);
localStorage.setItem("bmi",bmi);
var loseorgain = loseorgainmessage(document.bmiform.weight.value, document.bmiform.dreamweight.value);
localStorage.setItem("loseorgain",loseorgain);
var weightdifference = myweightdifference(document.bmiform.weight.value, document.bmiform.dreamweight.value);
localStorage.setItem("weightdifference",weightdifference);
var bmrrate = bmr(document.bmiform.gender.value, document.bmiform.height.value, document.bmiform.weight.value, document.bmiform.age.value);
localStorage.setItem("bmrrate",bmrrate);
document.bmiform.submit();
}
</script>
</head>
<body>
<div data-role="page" id="bmicalculator">
<div data-role="header">
<a href="#" onclick="home()" class="ui-btn ui-icon-home ui-btn-icon-left">Home</a>
<h1>BMI Calculator</h1>
</div>
<div data-role="main" class="ui-content">
Enter your height and weight. The system will calculate your BMI:<br><br>
<form id="bmiform" name="bmiform" action="calculateinput.html">
<label for="height">Height</label>
<input type="text" name="height" id="height" value="enter height in meters">
<label for="weight">Weight</label>
<input type="text" name="weight" id="weight" value="enter weight in KG">
<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Gender</legend>
<label for="male">Male</label>
<input type="radio" name="gender" id="male" value="male" checked>
<label for="female">Female</label>
<input type="radio" name="gender" id="female" value="female">
</fieldset>
<label for="dreamweight">Dream Weight</label>
<input type="text" name="dreamweight" id="dreamweight" value="enter dream weight in KG">
<label for="age">Age</label>
<input type="text" name="age" id="age" value="enter age">
<label for="exercisefrequency">Exercise Frequency</label>
<select name="exercisefrequency" id="exercisefrequency">
<option value="hardlyexercise">Hardly Exercise</option>
<option value="exercise1to3timesaweek">Exercise 1 to 3 times a week</option>
<option value="exercise3to5timesaweek">Exercise 3 to 5 times a week</option>
<option value="exercise6to7timesaweek">Exercise 6 to 7 times a week</option>
<option value="intensiveexercisemorethan7timesaweek">Intensive Exercise more than 7 times a week</option>
</select><br>
<input type="button" value="Calculate" onclick="calculate()">
</form>
</div>
<div data-role="footer" style="text-align:center;">
Developed by The Dom
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</div>
</body>
</html>
您在 if
语句中使用赋值而不是相等性检查。
替换:
if (gender="male"){
else if(gender="female"){
与:
if (gender==="male"){
else if(gender==="female"){
使用“==”代替这个“=”进行比较。 '=' 用于将 thr rhs 变量分配给 lhs 变量,'==' 用于比较。