所以我有一个非常基本的条件陈述,但我试图得到一个不同的答案。我希望有一个默认的else命令,如果用户输入大于10的东西,他们会收到警告"这些数字只有1-10和#34;我能做到这一点的方式是什么?
O.wsid = @wsid
答案 0 :(得分:0)
修改了一些代码:
我使用switch
表示基本判断guess
是否匹配number
或更低或更高的条件。如果txt
超出guess
,请添加1-10
作为额外信息。
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;
}
&#13;
您可以尝试使用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 );
}
&#13;
答案 1 :(得分: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
那就是说,你可能要小心那个设置。