我是一名Javascript学生,我想知道正确的语法是在提示旁边包含一个警告框,说“嘿,等一下,你需要填写表格!"并且必须单击"确定"在它中断并重新提示用户输入字符串或int / float之前。我知道这是多余的,但这仅仅是为了学习。
这是我尝试的但是在输入字符串/ int / float之后我得到了警告,或者无论如何它都是null。 :(
function breakTest() {
var loopBoolean = true;
var myValue = "";
while(loopBoolean) {
myValue = prompt("Enter data", myValue);
if (myValue==null);
alert("Hey, wait a minute, you need to complete the form!"); break;
if (myValue) {
loopBoolean = false;
alert (myValue)
}
}
}
这是在没有警报框实现的情况下正常运行的orignial代码:
function breakTest() {
var loopBoolean = true;
var myValue = "";
while(loopBoolean) {
myValue = prompt("Enter data", myValue);
if (myValue==null) break;
if (myValue) {
loopBoolean = false;
alert (myValue)
}
}
}
由于
干杯, Json Segel
答案 0 :(得分:1)
你的问题是一个简单的逻辑,有一个有效:
function breakTest() {
var myValue = "";
// you don't need a loopBoolean because you will break the loop manually
while(true) {
myValue = prompt("Enter data", myValue);
// First of, your value will not be null but empty, so ""
if (myValue == ""){
alert("Hey, wait a minute, you need to complete the form!");
// also, you want to reprompt to input a value, so you want to continue
// to redo the loop (you could use break to end this here and now)
continue;
} else {
// else you want to alert the value and break the loop
alert (myValue);
break;
}
}
}
然后你可能会返回值而不是警告,如果值不为空,则使用break来转义循环(如else { break; } } return myValue;
中所示。)然后你可以{{1让用户分配一个新值。
此外,您的函数中的var globalValue = breakTest();
和break;
执行相同的操作。 loopBoolean
为loopBoolean
后,您会停止while循环,但while循环也会被false
关键字停止,因此您可以使用它。
我个人真的不会这样做(我认为你的缩进可能会更清晰,只有当你在声明中时才会缩进),但这应该可以做到这一点
break;
我只想说明你可以省略function breakTest() {
var loopBoolean = true;
var myValue = "";
while(loopBoolean) {
myValue = prompt("Enter data", myValue);
if (myValue == ""){
alert("Hey, wait a minute, you need to complete the form!");
// You dont want to break here, actually, as you want to rerun the loop.
// So I'll comment out the break. Now it will prompt until you enter something!
// break;
}
if (myValue) {
loopBoolean = false; // <- this does the same as using break: it ends your loop
alert (myValue)
}
}
}
或省略loopBoolean
并在那里使用break
(一致性!)并且这个循环没有意义,因为你打破它的方式,因此实际上没有循环。我想你实际上想要不在'输入'警告之后打破循环,直到有人输入内容。
答案 1 :(得分:0)
您正在终止if语句。只需删除分号。
if (myValue==null)
enter code here alert("Hey, wait a minute, you need to complete the form!");
这里没有必要休息。
答案 2 :(得分:0)
简化方法是:
function breakTest() {
var loopBoolean = true;
var myValue = "";
while (loopBoolean) {//Run the loop while loopBoolean is true
myValue = prompt("Enter data", myValue);
//Prompt user to enter data.
if (myValue) { //Checks if data has been entered
loopBoolean = false; //Set the loopBoolean to true if data is found.
alert(myValue) //Show the data
} else {
//Else alert the user to input data again after user clicks ok the loop continues
//untill the loopBoolean is false.
alert("Hey, wait a minute, you need to complete the form!");
}
}
}