编写一个接受两个整数并显示较大整数的JavaScript程序。

时间:2018-07-03 11:28:48

标签: javascript conditional control-flow

我想出了几种写上面函数的方法。但是,我感觉自己都以错误的顺序进行操作,而且每一行都有太多条件...

是否可以通过更简单的方式(例如,仅在数字为整数的情况下运行该函数),然后比较数字,而不是由我检查每行中的整数是否为整数?

我知道有很多方法可以编写此代码,希望能在if-else方法中保持相同,但可以使用更短,更简单的版本,并且流程可能更好。

<Picker
  mode="dialog"
  selectedValue={this.state.customerName}
  onValueChange={(itemValue, itemIndex) => {
    this.setState({ customerName: itemValue });
    }
  }
  >
    {
      this.state.responseData.map((item) => (
      <Picker.Item label={item.customer} value={item.customer} key={item.customer} />))
    }
</Picker>

3 个答案:

答案 0 :(得分:2)

确定要检查>0吗?您可以将该函数与参数-1,-1一起使用。 无论如何,您可以执行以下操作:

function integer(a,b) {

if(typeof a !== 'number' || typeof b!== 'number' ) {
    document.write("Please add 2 valid numbers");
} else {
  if(a==b) {
    document.write("Two equals number");
   }  else {
    document.write("The larger number is " + (a > b ? a : b ));
   }

  }
}
integer(-1,-1);

或相同的函数,但仅使用三元运算符。更紧凑,但有点难以理解。 如果您正在做家庭作业,这就是您的老师想要的东西:)(但我不鼓励在现实世界中使用它)

function integer(a,b) {
    (typeof a !== 'number' || typeof b!== 'number' ) ?
        document.write("Please add 2 valid numbers") :
        a == b ? document.write("Two equals number") :
        document.write("The larger number is " + (a > b ? a : b ));
}

答案 1 :(得分:2)

function integer(a,b) {
    if(a>=0 && b>=0)
    {
        if(a!=b)
        {
            document.write("The larger number is " + Math.max(a,b));
        }
        else
        {
            document.write("Both numbers are equal!")
        }
    } else {
        document.write("Please add an integer!");
    }
}

integer(-1,-1);

答案 2 :(得分:1)

所有整数都是整数(即正数(1),负数(-1)和零)。分数和小数不是整数。

function integer(a,b) {

    var isInteger = Number.isInteger(a) && Number.isInteger(b);

    if(isInteger && a === b)
        document.write("Both numbers are equal!");

    else if(isInteger)
        document.write("The larger number is " + Math.max(a,b));

    else
        document.write("Please add an integer!");

}

integer(-1,-1);

注意:如果您不希望负数和零为整数,请使用(a> 0 && b> 0)而不是(Number.isInteger(a)&& Number.isInteger(b))