前端js输入三个数,找出最大数以及为什么输入三位数之后,程序会出错

前端js输入三个数,找出最大数

在这道题中,其实思路比较简单,就是先比较两位数,再用其中最大的去和第三位数比较。在解题过程中,我先编写的代码是:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    
    var a = prompt('请输入数字a');
    var b = prompt('请输入数字b');
    var c = prompt('请输入数字c');

    var max = a;
    if (b>max){
        max = b;
        if (c>max){
            max=c;
            alert('最大数是c:'+max);
        }else if (c<max){
            alert('最大数是b:'+max);
        }else{
            alert('最大数是b,c:'+max);
        }
    }else if (b<max){
        if (c>max){
            max=c;
            alert('最大数是c:'+max);
        }
        else if (c<max){
            alert('最大数是a:'+max);
        }else {
            alert('最大数是a,c:'+max);
        }
    }else if (b===max){
        if (c>max){
            max = c;
            alert('最大数是c:'+max)
        }else if (c<max){
            alert('最大数是a,b:'+max)
        }else{
            alert('最大数是a,b,c:'+max)
        }
    }


</script>
</body>
</html>

但是这里,要是输入一个三位数是无法完成比较的,比如说我分别依次输入100,1,45;这时会显示45是最大的。这种情况下,我就利用console.log()在控制台将c打印出来。
这是加打印的代码:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
       var a = prompt('请输入数字a');
    var b = prompt('请输入数字b');
    var c = prompt('请输入数字c');

    var max = a;
    if (b>max){
        max = b;
        if (c>max){
            max=c;
            alert('最大数是c:'+max);
        }else if (c<max){
            alert('最大数是b:'+max);
        }else{
            alert('最大数是b,c:'+max);
        }
    }else if (b<max){
        if (c>max){
            max=c;
            alert('最大数是c:'+max);
            /*******在这里加打印语句****************/
            console.log(max);
        }
        else if (c<max){
            alert('最大数是a:'+max);
        }else {
            alert('最大数是a,c:'+max);
        }
    }else if (b===max){
        if (c>max){
            max = c;
            alert('最大数是c:'+max)
        }else if (c<max){
            alert('最大数是a,b:'+max)
        }else{
            alert('最大数是a,b,c:'+max)
        }
    }


</script>
</body>
</html>

下面是结果:
在这里插入图片描述
在这里插入图片描述

之后我发现打印出来的45的字体是黑色的,这里先说一下,在js中,浏览器控制台打印出来的东西,字体是黑色代表这是String类型,蓝色是Number类型。所以这里是字符串类型,我需要将其转换为数字类型。
转换为数字型,只需要在输入的时候,加上parseInt(),具体代码如下:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var a = parseInt(prompt('请输入数字a'));
    var b = parseInt(prompt('请输入数字b'));
    var c = parseInt(prompt('请输入数字c'));
    // var a = prompt('请输入数字a');
    // var b = prompt('请输入数字b');
    // var c = prompt('请输入数字c');

    var max = a;
    if (b>max){
        max = b;
        if (c>max){
            max=c;
            alert('最大数是c:'+max);
        }else if (c<max){
            alert('最大数是b:'+max);
        }else{
            alert('最大数是b,c:'+max);
        }
    }else if (b<max){
        if (c>max){
            max=c;
            alert('最大数是c:'+max);
                   }
        else if (c<max){
            alert('最大数是a:'+max);
        
/*******在这里我加打印语句,方便看类型****************/
	    console.log(max);
        }else {
            alert('最大数是a,c:'+max);
        }
    }else if (b===max){
        if (c>max){
            max = c;
            alert('最大数是c:'+max)
        }else if (c<max){
            alert('最大数是a,b:'+max)
        }else{
            alert('最大数是a,b,c:'+max)
        }
    }


</script>
</body>
</html>

接下来看结果:
在这里插入图片描述
在这里插入图片描述
结果正确,而且是蓝色字体。这样问题就解决了。
这次我学到了:当认为自己的程序逻辑没出现问题的时候,可以选择将变量打印出来再观察。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值