x<y时错误,不懂原因

来源:5-6 编程练习

轻杯过海

2019-08-30 16:28

代码如下:

<script type="text/javascript">

//定义函数
function compare(x,y){
    if(x>y){
        document.write(x+"和"+y+"的较大值是:"+x+"<br>");
    }
    else if(x=y){
        document.write(x+"和"+y+"的值相等"+"<br>");
    }
    else {
        document.write(x+"和"+y+"的较大值是:"+y+"<br>");
    }
    
}
//函数体,判断两个整数比较的三种情况

compare (5,4);
compare (7,7);
compare (1,3);


运行结果:前两个正常,但运行第三个1和3比较大小时,会输出:3=3,不知是什么原因,想了半天没想明白,求指教,谢谢!

写回答 关注

3回答

  • sdarks
    2019-08-31 10:34:46
    已采纳

    这里不应该是x=y,而是x==y。x=y意思是将y的值赋予变量x,x==y意思是x等于y。

  • 电子153
    2019-08-31 13:22:26

    楼上正解,一个“=”是赋值操作,只要不为0就认为是真,你前面两个比较没有体现出这个错误。

  • 轻杯过海
    2019-08-30 16:34:01

    刚才调整了下顺序,把x<y提到 x=y前面去了之后就成功了

    猜想了下,会不会x=y在前面的话,程序认为是把y的值赋值给了x,所以x也等于了3,导致x、y的值就相同了

    不知道是不是这个原因啊?

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468284 学习 · 21892 问题

查看课程

相似问题