因此,其余的代码工作,因为我也需要它。下面列出了唯一不起作用的部分。我试图完成的是,如果程序启动后输入了SENTINEL,numResults和floatResults将收到以下值。我在哪里没有正确地编码,这样语句就不能工作了?谢谢你的帮助
if语句给了我问题
// gives value if only the SENTINEL is entered once program is initiated
if (number == SENTINEL && numValues == 0 && floatValues == 0 ) {
numResults = document.getElementById("numbers").innerHTML = " No values were entered."
floatResults = document.getElementById("floating").innerHTML = " No values were entered."
}我的代码
<script>
function examineNumbers() {
const SENTINEL = -1;
let number = 0;
let type;
let numValues = 0;
let numAverage = 0;
let floatValues = 0;
let numTotal = 0;
let floatTotal = 0;
let list = document.getElementById("list");
let numbers = document.getElementById("numbers");
let floating = document.getElementById("floating");
// while loop to only allow numbers greater than zero to be inputted
while (number != SENTINEL) {
number = prompt("Enter a number. Type " + SENTINEL + " to stop.");
if (number == -1) {
break;
}
// deterrmines if a number is even
if (number % 2 == 0) {
type = " is an even value";
numTotal += parseInt(number);
numValues++;
}
// determines if a number is odd
else if (Math.abs(number % 2) == 1) {
type = " is an odd value";
numTotal += parseInt(number);
numValues++;
}
// gives a floating point type if above two aren't met
else {
type = " is a floating point value.";
floatTotal += parseFloat(number);
numTotal += parseFloat(number);
numValues++;
floatValues++;
}
let numResults;
let floatResults;
// averages non floating numbers
numAverage = numTotal / numValues;
numResults = document.getElementById("numbers").innerHTML = " The total is " + numTotal.toFixed(2) +
" and the average is " + numAverage.toFixed(2) + ".";
// gives value if only the SENTINEL is entered once program is initiated
if (number == SENTINEL && numValues == 0 && floatValues == 0 ) {
numResults = document.getElementById("numbers").innerHTML = " No values were entered."
floatResults = document.getElementById("floating").innerHTML = " No values were entered."
}
// averages floating point numbers
floatAverage = floatTotal / floatValues;
floatResults = document.getElementById("floating").innerHTML = "The sum of just the floating point values is " + floatTotal.toFixed(2) +
" with the average of " + floatAverage.toFixed(2) + ".";
// gives value if no floating numbers are entered
if (floatValues == 0 ) {
floatResults = document.getElementById("floating").innerHTML = "No floating-pont values were entered."
}
let li = "";
//only add number and its status to list when number not equal to SENTINEL
if (number !== SENTINEL) {
li = document.createElement("li");
li.innerHTML = number + type;
list.appendChild(li);
// displays information for both non floating numbers and floating numbers
numbers.innerHTML = numResults;
floating.innerHTML = floatResults;
}
}
}
</script><h1>Number Examination Tool </h1>
<form name="myForm" >
<button type="button" onclick="examineNumbers();">Click here to enter numbers </button>
<h3>List of Numbers </h3>
<ul id = "list"></ul>
<div id="numbers"></div>
<div id="floating"></div>
</form>发布于 2020-11-14 13:25:53
如果您将IF语句移动如下,则会破坏if语句,使其永远不会结束。
number = prompt("Enter a number. Type " + SENTINEL + " to stop.");
// gives value if only the SENTINEL is entered once program is initiated
if (number == SENTINEL && numValues == 0 && floatValues == 0 ) {
document.getElementById("numbers").innerHTML = " No values were entered."
document.getElementById("floating").innerHTML = " No values were entered."
while (list.children.length>0) {
list.lastChild.remove()
}
}
if (number == -1) {
break;
}它应该能工作,或者你可以把语句组合起来,
number = prompt("Enter a number. Type " + SENTINEL + " to stop.");
// gives value if only the SENTINEL is entered once program is initiated
if (number == -1) {
if (numValues == 0 && floatValues == 0) {
document.getElementById("numbers").innerHTML = " No values were entered."
document.getElementById("floating").innerHTML = " No values
were entered."
while (list.children.length>0) {
list.lastChild.remove()
}
}
break;
}发布于 2020-11-14 13:48:23
若要将值设置为numResults,则应首先定义每个变量的floatResults。要将number变量放入提示符中,则将if条件放在number提示符下。好像一切都很好。
<script>
// gives value if only the SENTINEL is entered once program is initiated
if (number == SENTINEL && numValues == 0 && floatValues == 0 ) {
numResults = document.getElementById("numbers").innerHTML = " No values were entered."
floatResults = document.getElementById("floating").innerHTML = " No values were entered."
}
function examineNumbers() {
const SENTINEL = -1;
let number = 0;
let type;
let numValues = 0;
let numAverage = 0;
let floatValues = 0;
let numTotal = 0;
let floatTotal = 0;
let list = document.getElementById("list");
let numbers = document.getElementById("numbers");
let floating = document.getElementById("floating");
// while loop to only allow numbers greater than zero to be inputted
while (number != SENTINEL) {
number = prompt("Enter a number. Type " + SENTINEL + " to stop.");
if (number == SENTINEL && numValues == 0 && floatValues == 0 ) {
floating.innerHTML = " No values were entered."
numbers.innerHTML = " No values were entered."
break;
}
// deterrmines if a number is even
if (number % 2 == 0) {
type = " is an even value";
numTotal += parseInt(number);
numValues++;
}
// determines if a number is odd
else if (Math.abs(number % 2) == 1) {
type = " is an odd value";
numTotal += parseInt(number);
numValues++;
}
// gives a floating point type if above two aren't met
else {
type = " is a floating point value.";
floatTotal += parseFloat(number);
numTotal += parseFloat(number);
numValues++;
floatValues++;
}
let numResults;
let floatResults;
// averages non floating numbers
numAverage = numTotal / numValues;
numResults = document.getElementById("numbers").innerHTML = " The total is " + numTotal.toFixed(2) +
" and the average is " + numAverage.toFixed(2) + ".";
// gives value if only the SENTINEL is entered once program is initiated
if (number == SENTINEL && numValues == 0 && floatValues == 0 ) {
numResults = document.getElementById("numbers").innerHTML = " No values were entered."
floatResults = document.getElementById("floating").innerHTML = " No values were entered."
}
// averages floating point numbers
floatAverage = floatTotal / floatValues;
floatResults = document.getElementById("floating").innerHTML = "The sum of just the floating point values is " + floatTotal.toFixed(2) +
" with the average of " + floatAverage.toFixed(2) + ".";
// gives value if no floating numbers are entered
if (floatValues == 0 ) {
floatResults = document.getElementById("floating").innerHTML = "No floating-pont values were entered."
}
let li = "";
//only add number and its status to list when number not equal to SENTINEL
if (number !== SENTINEL) {
li = document.createElement("li");
li.innerHTML = number + type;
list.appendChild(li);
// displays information for both non floating numbers and floating numbers
numbers.innerHTML = numResults;
floating.innerHTML = floatResults;
}
}
}
</script>
<h1>Number Examination Tool </h1>
<form name="myForm" >
<button type="button" onclick="examineNumbers();">Click here to enter numbers </button>
<h3>List of Numbers </h3>
<ul id = "list"></ul>
<div id="numbers"></div>
<div id="floating"></div>
</form>
https://stackoverflow.com/questions/64834077
复制相似问题