2017-10-16 61 views
-1

中指定的有效值。我的腳本應該提示用戶輸入性別,如果性別爲'M'或'F',那麼它將返回。如果有其他輸入,則必須繼續提示,直到輸入任何值。JS:提示用戶輸入,直到他們輸入在參數

function getGender() { 
    var yourGender = prompt('Enter your gender (M/F)'); 
    var choice = yourGender; 

if (choice = 'M' || 'F') { 
    return choice; 
} else 
    do { 
     var yourGender = prompt('Enter your gender (M/F)'); 
    } 
    while (choice != 'M' || 'F') { 

    } 
} 

回答

0

A do-while循環與while循環不一樣,它看起來像你混淆了它們的語法。下面是使用MDN的一個例子:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while

另外,當使用邏輯運算符檢查true或false時,您必須根據每個條件檢查變量。你的功能應該是簡單得多:

function getGender() { 
    do { 
    var yourGender = prompt('Enter your gender (M/F)').toLowerCase(); 
    } while (yourGender !== 'm' && yourGender !== 'f'); 

    return yourGender; 
} 
+0

This works,thank you。是的,它應該更簡單,欣賞幫助。你知道如何使提示不區分大小寫嗎?即降低成本? –

+0

@JimmieDavis當然,我用'.toLowerCase()'更新了答案。您只需將其添加到提示的末尾,然後更改小寫'm'和'f'的條件檢查。 – skyline3000

0
function getGender() 
{ 
    var yourGender; //otherwise, 'while' doesn't know it 
    do 
    { 
     yourGender = prompt('Enter your gener (M/F)'); 
    } 
    while(yourGender != 'M' && yourGender != 'F') 
} 

我不知道如果提示部分是正確的,但千萬,而部分應該像這樣工作。

+0

你知道如何做出及時區分大小寫?即降低成本? –

+0

只需添加&& yourGender!='m'&& yourGender!='f'if if – Birkl

0

function getGender(sensitive){ 
 
    let gender; 
 
    let pat = sensitive ? /[MF]/ : /[MF]/i; 
 
    do 
 
    { 
 
    gender = prompt("Enter your gender (M/F)", ''); 
 
    } while(!gender.match(pat)); 
 
    return gender; 
 
} 
 

 
/* Case sensitive 
 
getGender(sensitive=true); 
 
//*/ 
 

 
//* Not case sensitive 
 
getGender(sensitive=false); 
 
//*/

+0

感謝您的幫助,此工作 –

+0

你知道如何使提示不區分大小寫嗎?即降低成本? –

+0

我更新後向您顯示不敏感的情況。 – 2017-10-16 13:40:30

相關問題