2017-09-19 106 views
0

很抱歉,如果這個問題是一種基本的,但我學習JavaScript的關閉和我創建一個猜謎遊戲,這裏是我的代碼javaScript;增加一個變量值,返回功能之後

function guessingGame(amount){ 
var answer = Math.floor(Math.random() * 10); 
var tries = 0; 
return function(guess){ 
    if(guess === answer){ 
    console.log('Got it') 
    return ++tries 
    } 
    else if(guess > answer){ 
    console.log('You are too high') 
    return ++tries 
    } 
    else if(guess < answer){ 
    console.log('You are too low') 
    return ++tries 
    } 
    if(tries > amount){ 
    console.log('Number of tries exceeded') 
    } 
    } 
} 

我試圖得到if(tries > amount)測試工作,但我相信我做錯了。請任何幫助,將不勝感激,謝謝

+0

有一個return語句正上方那條線,這意味着它返回它甚至到達那裏之前 – adeneo

回答

0

在返回之前保持您的條件tries > amount。更新您這樣的代碼

function guessingGame(amount){ 
 
var answer = Math.floor(Math.random() * 10); 
 
var tries = 0; 
 
return function(guess){ 
 
    if(tries > amount){ 
 
    console.log('Number of tries exceeded') 
 
    } 
 
    if(guess === answer){ 
 
    console.log('Got it') 
 
    return ++tries 
 
    } 
 
    else if(guess > answer){ 
 
    console.log('You are too high') 
 
    return ++tries 
 
    } 
 
    else if(guess < answer){ 
 
    console.log('You are too low') 
 
    return ++tries 
 
    
 
    
 
    } 
 
    } 
 
} 
 
var guess = guessingGame(2); 
 
console.log(guess(1)); 
 
console.log(guess(2)); 
 
console.log(guess(3)); 
 
console.log(guess(4));

2
if(guess === answer){ 

    } 
else if(guess > answer){ 
    } 
else if(guess < answer){ 
    } 

這些條件一個將永遠是真實的,因此代碼的最後一部分,永遠不會執行

2

這應該做的伎倆

function guessingGame(amount){ 
    var answer = Math.floor(Math.random() * 10); 
    var tries = 0; 
    return function(guess){ 
     if(tries > amount){ 
      console.log('Number of tries exceeded') 
      return; 
     } 
     if(guess === answer){ 
      console.log('Got it') 
      return ++tries 
     } 
     else if(guess > answer){ 
      console.log('You are too high') 
      return ++tries 
     } 
     else if(guess < answer){ 
      console.log('You are too low') 
      return ++tries 
     } 
    } 
} 

您只需要在開始時檢查條件,作爲if語句之一,然後您的檢查將始終評估爲true,並且該檢查是無法訪問的代碼。