有没有办法创建一个循环,只有在输入特定字符串时才会停止?

时间:2010-10-28 01:22:29

标签: javascript

我要做的是创建一个循环,提示用户输入信息,并且只有在输入某些字符串时才会停止。具体来说,我希望它只接受某些字母,包括大写和小写。这是我到目前为止所做的:

 do
 {
  salesP = prompt("Enter the initial of the first name of the salesperson: ", "");
 }while (salesP != "C" || salesP != "c")

基本上,while部分是完全错误的,我知道。我已经尝试了所有我能想到的东西,我能做的最好就是让它接受一个变量。我也需要它接受d,x和m两种情况。

4 个答案:

答案 0 :(得分:1)

选项1 带有if语句的永久循环可以使用多个if语句或其他控制结构来检查何时中断。

while 1:
   if(raw_input('Enter some data please:') == specialString):
      break

选项2 循环的一部分

tempstring = ""
while (tempstring != specialString):
    tempstring = raw_input('Enter some data please:')

选项3: 递归

def dataEntry(a,b,c):
    #data validation statements that fail on first iteration
    #statements to prompt user about data
    dataentry(a,b,c)

至于如何检查正确的字符串,我建议使用正则表达式。谷歌搜索“正则表达式”的例子比我试图解释它要好得多。

答案 1 :(得分:1)

如果你是新手还有别的东西你应该真的熟悉在进行字符串比较时要完全消除方程式中的情况:

do
 {
  salesP = prompt("Enter the initial of the first name of the salesperson: ", "");
 }while (salesP.toLowerCase() != 'c')

答案 2 :(得分:0)

该代码几乎是正确的。您只需在while语句中使用不正确的布尔运算符。您正在使用OR(||),您应该使用AND(&&)。

所以:

 do
 {
  salesP = prompt("Enter the initial of the first name of the salesperson: ", "");
 }while (salesP != "C" && salesP != "c")

答案 3 :(得分:0)

只是另一种方法

function promptSalesP(){
var _salesP = prompt("Enter the initial of the first name of the salesperson: ", "");
if(_salesP.toLowerCase() == "c")
return _salesP;
else
return promptSalesP(); 
}

var salesP = promptSalesP();