2017-05-15 146 views
-1

所以我有一個非常基本的條件語句,但我試圖得到不同的答案。我想要一個默認命令else,如果用戶輸入大於10的東西,他們會得到「數字只有1-10的警報」我可以做到這一點的方式是什麼?條件語句JavaScript

var number = 7; 
var stringGuess = prompt("guess a number"); 
var guess = Number(stringGuess); 



if (guess === number) { 
    alert("you got it"); 
} 

else if(guess > 10) { 
    alert(" Too High Guess Lower"); 
} 

else if (guess < number) { 
    alert("Too low guess higher!"); 
} 
else { 

} 
+2

你會檢查'如果(猜測> 10)' - 你已經做了,但你永遠不會'如果(猜數>數量)'這是奇怪的 –

+0

這就是我試圖搗亂的東西,但甚至如果我使用guess> than var number,它仍然給我相同的答案。我試圖有一個else語句,只跟蹤數字1-10 –

回答

0

改性代碼的一點點: 我用switch的條件基本上判斷是否guess是匹配的number或低於或高於。如果guess不在1-10之內,請添加txt作爲附加信息。

var number = 7; 
 
var stringGuess = prompt("guess a number"); 
 
var guess = Number(stringGuess); 
 

 
switch (true) { 
 
    case (guess === number): 
 
    alert('You got it!'); 
 
    break; 
 
    case (guess > number): 
 
    var txt = (guess > 10) ? ' and the number is smaller than 10' : ''; 
 
    alert('Too high' + txt); 
 
    break; 
 
    case (guess < number): 
 
    var txt = (guess < 1) ? ' and the number greater than 1' : ''; 
 
    alert('Too low' + txt); 
 
    break; 
 
}

你可以試試這個,他們通過使用IF ELSE做同樣的事情。

var number = 7; 
 
var stringGuess = prompt("guess a number"); 
 
var guess = Number(stringGuess); 
 
var txt = (guess > 10) ? ' and the number is smaller than 10' : ''; 
 
if (guess < 1) txt = ' and the number greater than 1'; 
 

 
if (guess === number) { 
 
    alert('You got it!'); 
 
} else if (guess > number) { 
 
    alert('Too high' + txt); 
 
} else { 
 
    alert('Too low' + txt); 
 
}

+0

嘿謝謝我正在查看是否有另一個操作符或不同的方法,但這也起作用!你知道這是否只能在switch語句中使用?或者我可以在if語句中實現這一點。 –

+0

@PeterTran,我編輯了答案。如果你喜歡這個答案,請注意。謝謝。 – noob

0

你必須打破東西進入功能,以隱藏怎麼了,說說什麼是你要完成一個很好的例子。

function isInBounds (low, x, high) { return low <= x && x <= high; } 
function isAnswer (x, number) { return x === number; } 
function gt (x, number) { return x > number; } 

function generateRandomInt (floor, ceiling) { 
    return Math.floor(Math.random() * (ceiling - floor)) + floor; 
} 


var lowerBound = 1; 
var upperBound = 10; 


// the +1 is because Random will never, ever be equal to the high number 
// so a random number between 1 and 10 really means between 1 and 11 
var answer = getRandomInt(lowerBound, upperBound + 1); 
var successMessage = "You got it!"; 
var failureMessage = "Guess again!"; 
var errorMessage = "Error: guess must be a number between " 
    + lowerBound + " and " + upperBound + "."; 

function checkGuess (x) { 
    var message = ""; 
    if (isInBounds(lowerBound, x, upperBound)) { 
    message = isAnswer(x, answer) ? successMessage : failureMessage; 
    } else { 
    message = errorMessage; 
    } 
    alert(message); 
} 

我使用三元賦值來設置message的值。

var x = isTrue ? truthyValue : falseyValue; 

你甚至可以將這些放在真實或僞裝的路徑上。

var result = a ? x : b ? y : z; 
// if a == true, x, else if b == true, y, else z 

這就是說,你可能想要小心這個設置。