前端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>
接下来看结果:
结果正确,而且是蓝色字体。这样问题就解决了。
这次我学到了:当认为自己的程序逻辑没出现问题的时候,可以选择将变量打印出来再观察。