条件语句JavaScript

时间:2017-05-15 01:52:17

标签: javascript

所以我有一个非常基本的条件陈述,但我试图得到一个不同的答案。我希望有一个默认的else命令,如果用户输入大于10的东西,他们会收到警告"这些数字只有1-10和#34;我能做到这一点的方式是什么?

O.wsid = @wsid

2 个答案:

答案 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;
&#13;
&#13;

您可以尝试使用IF ELSE完成相同的操作。

&#13;
&#13;
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;
&#13;
&#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

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