我正在尝试让页面提示用户输入。我希望它一直显示一个提示,直到输入的数字小于2.
我的代码没有正确执行此操作。当我按下我的警报时,它就会关闭。如果输入的数字低于2,我希望重新显示提示。
我需要在一个名为readNumberOfEntries的函数中编写这段代码。
目前我的代码是:
<script>
"use strict";
main();
/* You may not change anything in the mainFuncion */
function main() {
var messageToDisplay = "Enter 1 to check whether data is sorted\n";
messageToDisplay += "Enter 2 to check whether data represents a palindrome";
var option = Number(prompt(messageToDisplay));
readNumberOfEntries(option);
if (option === 1) {
if (isSorted()) {
alert("Data is sorted");
} else {
alert("Data is not sorted");
}
}
else if (option === 2) {
if (isPalindrome()) {
alert("Data represents a palindrome");
} else {
alert("Data does not represent a palindrome");
}
}
else {
alert("Invalid option provided.");
}
}
function readNumberOfEntries($value) {
/* YOU MUST IMPLEMENT THIS FUNCTION */
var smaller_than_two = false;
if($value < 2) {
smaller_than_two = true;
} else {
smaller_than_two = false;
//alert('Error: Number must be greater than or equal to 2');
}
while(!smaller_than_two) {
if($value < 2) {
smaller_than_two = true;
}
}
}
function isSorted() {
/* YOU MUST IMPLEMENT THIS FUNCTION */
}
function isPalindrome() {
/* YOU MUST IMPLEMENT THIS FUNCTION */
}
</script>
答案 0 :(得分:0)
一个简单的解决方案是让你的readNumberOfEntries
函数返回smaller_than_two
变量,然后让你从readNumberOfEntries
中拉出while循环,然后在你的main函数中使用它,将继续提示,直到真实。
function main() {
while(!readNumberOfEntries(option)){
// alerts, etc ...
}
}
答案 1 :(得分:0)
只需在main()
中再次拨打else
即可重新触发提示
else {
alert("Invalid option provided.");
main()
}
答案 2 :(得分:0)
所以你的代码工作正常,但它不会被多次调用。您的main();
电话会调用一次工作逻辑,但如果符合您的条件,则需要重新拨打电话。我建议递归调用main()
function main() {
var messageToDisplay = "Enter 1 to check whether data is sorted\n";
messageToDisplay += "Enter 2 to check whether data represents a palindrome";
var option = Number(prompt(messageToDisplay));
readNumberOfEntries(option);
if (option === 1) {
if (isSorted()) {
alert("Data is sorted");
} else {
alert("Data is not sorted");
}
}
else if (option === 2) {
if (isPalindrome()) {
alert("Data represents a palindrome");
} else {
alert("Data does not represent a palindrome");
}
}
else {
alert("Invalid option provided.");
}
if(option <2){
main();
}
}
答案 3 :(得分:0)
您可以在readNumberOfEntries
function readNumberOfEntries($value) {
while(true) {
if($value>2) {
return $value;
} else {
$value = Number(prompt("Enter a value greater than 2"));
}
}
}
然后将readNumberOfEntries
返回的值分配给option
option = readNumberOfEntries(option);