2017-05-15 149 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 

这就是说,你可能想要小心这个设置。