【前端】【HTML+CSS+JavaScript(JS)】简易计算器的实现 可连加连减 带注释/总结

效果:

在这里插入图片描述

代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计算器</title>
		<script type="text/javascript">
		
			//	初始状态,记得每次按等号要还原
			var t1 = 0, t2 = 0, flag = 0;	//初始0 加法1 减法2 乘法3 除法4
			
			var equal_times = 0;
			
			function cal(n){	//传参 n
				
				if(n != 'C')
					document.getElementById("txt-1").value += n;	//直接展示,因为都要展示,但是C除外
				
				if(n >= 0 && n <= 9){	//如果n是数字
					//还未敲操作数分支
					if(flag >= 1 && flag <= 4){	//意为:如果已经敲了+-*/后再敲数字,就可以取t2了
						t2 = t2 * 10 + parseInt(n);	//得到t2
					}
				}
				else{	//如果n不是数字
					switch(n){
						case 'C':	//还原 
							document.getElementById("txt-1").value = "";
							//★★★★★★★★★★★这个equal_times也要归位!!!★★★★★★★★★★
							t1 = t2 = flag = equal_times = 0;
							break;
							
							
						case '+':
							t1 = parseInt(document.getElementById("txt-1").value);	//得到t1
							flag = 1;	//表明是加法
							break;
						case '-':
							t1 = parseInt(document.getElementById("txt-1").value);
							flag = 2;
							break;
						case '*':
							t1 = parseInt(document.getElementById("txt-1").value);
							flag = 3;
							break;
						case '÷':
							t1 = parseInt(document.getElementById("txt-1").value);
							flag = 4;
							break;
							
							
						case '=':
							//检查这是第几次等于
							++equal_times;
							// 	★★★数字加空串变字符串★★★
							// flag += '';
							//如果下面是 case '1' 时就需要修改。case 1 这样是数字
							switch(flag){
								case 1:
								//只要不是第一次等于。t1就等于原来两数相加,。即可实现连加。
									if(equal_times > 1)
											t1 += t2;
									document.getElementById("txt-1").value += t1 + t2;
									break;
								case 2:
									if(equal_times > 1)
											t1 -= t2;
									document.getElementById("txt-1").value += t1 - t2;
									break;
								case 3:
									if(equal_times > 1)
											t1 *= t2;
									document.getElementById("txt-1").value += t1 * t2;
									break;
								case 4:
									if(equal_times > 1)
											t1 /= t2;
									document.getElementById("txt-1").value += t1 / t2;
									break;
							}
							//要连等于的话,以下变量无法归位,因为如果要归位,t1,t2,flag数据就丢失了。
							// t1 = t2 = flag = 0;	//flag归位,操作数归位
							break;
					}
				}
			}
			
		</script>
		
		<style type="text/css">
			#b-box{
				width: 300px;
				margin:150px auto;
			}
			.line input{
				width: 60px;
				height: 30px;
			}
			div{
				margin-top: 15px;
			}
		</style>
		
	</head>
	<body>
		<div id="b-box">
			<div id="tt"><label>计算器</label></div>
			<div id="txt"><input type="text" id="txt-1" /></div>
			<div class="line">
				<input type="button" value="7" onclick="cal(7)" />
				<!-- 经过测试cal(7)和cal('7')都可以,因为★★★判断★★★的时候自动转换 -->
				<input type="button" value="8" onclick="cal(8)" />
				<input type="button" value="9" onclick="cal(9)" />
				<input type="button" value="+" onclick="cal('+')" />
			</div>
			
			<div class="line">
				<input type="button" value="4" onclick="cal(4)" />
				<input type="button" value="5" onclick="cal(5)" />
				<input type="button" value="6" onclick="cal(6)" />
				<input type="button" value="-" onclick="cal('-')" />
			</div>
			
			<div class="line">
				<input type="button" value="1" onclick="cal(1)" />
				<input type="button" value="2" onclick="cal(2)" />
				<input type="button" value="3" onclick="cal(3)" />
				<input type="button" value="*" onclick="cal('*')" />
			</div>
			
			<div class="line">
				<input type="button" value="C" onclick="cal('C')" />
				<input type="button" value="0" onclick="cal(0)" />
				<input type="button" value="=" onclick="cal('=')" />
				<input type="button" value="÷" onclick="cal('÷')" />
			</div>
			
		</div>
	</body>
</html>

注意:

1.每次按等号要还原几个值。
2.数字转换成字符串的方法:
加一个空字符“”,例如:flag += ‘’;
3.switch函数会自动转换数字或字符(有待考证)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一个简单的HTML+CSS+JavaScript计算器示例,可以实现减和等于功能。以下是代码示例: HTML代码: ``` <div class="calculator"> <input type="text" class="screen" readonly> <div class="keys"> <button class="operator" value="+">+</button> <button class="operator" value="-">-</button> <button class="number" value="1">1</button> <button class="number" value="2">2</button> <button class="number" value="3">3</button> <button class="number" value="4">4</button> <button class="number" value="5">5</button> <button class="number" value="6">6</button> <button class="number" value="7">7</button> <button class="number" value="8">8</button> <button class="number" value="9">9</button> <button class="number" value="0">0</button> <button class="equals" value="=">=</button> </div> </div> ``` CSS代码: ``` .calculator { width: 200px; border: 1px solid #ccc; border-radius: 5px; padding: 10px; } .screen { width: 100%; margin-bottom: 10px; } .keys { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 5px; } button { font-size: 20px; padding: 5px; } .operator { background-color: #f2f2f2; } .number { background-color: #fff; } ``` JavaScript代码: ``` const screen = document.querySelector('.screen'); const keys = document.querySelector('.keys'); let firstNum = ''; let operator = ''; let secondNum = ''; keys.addEventListener('click', (e) => { if (e.target.matches('.number')) { if (operator === '') { firstNum += e.target.value; screen.value = firstNum; } else { secondNum += e.target.value; screen.value = secondNum; } } if (e.target.matches('.operator')) { operator = e.target.value; } if (e.target.matches('.equals')) { if (operator === '+') { screen.value = parseInt(firstNum) + parseInt(secondNum); } else if (operator === '-') { screen.value = parseInt(firstNum) - parseInt(secondNum); } } }); ``` 这个计算器的界面非常简单,只有一个文本框和一些按钮,您可以在文本框中输入数字,然后按下号或减号按钮来选择您要执行的操作,最后按下等于号按钮来显示结果。请注意,这个示例只实现减和等于功能,如果需要实现更多的功能,需要扩展代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_小鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值