本节课思考
每次四则运算都得用等号输出无疑是反人类的,按照现实需要,计算器应该能完成连续的四则运算并在最后一次按=输出结果,尝试完成连续计算,如果fh里存有符号加减乘除,说明非第一次运算,应该直接计算上一次的计算结果,存储到btn_num1里,再进行本轮的计算,即每次按符号键将之前已有的运算完成得到结果,作为上一次的输入。
正在回答
同学你好,在js中是可以设置全局变量的,不使用var,直接给定义变量,隐式的声明了全局变量。如下所示:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
function init(){
var m=document.getElementById("num");
m.value=0;
m.disabled="disabled";
var btn_num1;
var fh;
var zz=true;
var oButton=document.getElementsByTagName("input");
for(var i=0;i<oButton.length;i++){
oButton[i].onclick=function(){
if(isNumber(this.value)){
if(zz){
m.value=(m.value+this.value)*1;
}
else{
m.value=this.value;
zz=true;
}
}
else{
var btn_num=this.value;
switch(btn_num){
case "+":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="+";
break;
case "-":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="-";
break;
case "*":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="*";
break;
case "/":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="/";
break;
case "=":
switch (fh){
case "+":
m.value=btn_num1+(m.value*1);
break;
case "-":
m.value=btn_num1-(m.value*1);
break;
case "*":
m.value=btn_num1*(m.value*1);
break;
case "/":
if(m.value==0){
m.value=0;
alert("除数不能为0!");
}else{
m.value=btn_num1/(m.value*1);
}
break;
}
fh=null;
zz=false;
break;
case ".":
m.value=dec_number(m.value);
break;
}
}
}
}
}
function isNumber(n){
return !isNaN(n);
}
function mathys(fh,btn_num1,m){
if(fh==null){
btn_num1=m.value*1;
}
else{
switch (fh){
case "+":
btn_num1=btn_num1+(m.value*1);
break;
case "-":
btn_num1=btn_num1-(m.value*1);
break;
case "*":
btn_num1=btn_num1*(m.value*1);
break;
case "/":
if(m.value==0){
m.value=0;
btn_num1=0;
alert("除数不能为0!");
}else{
btn_num1=btn_num1/(m.value*1);
}
break;
}
}
return btn_num1;
}
function dec_number(n){
if(n.indexOf(".")==-1){
n=n+".";
}
return n;
}
function init(){
var m=document.getElementById("num");
m.value=0;
m.disabled="disabled";
var btn_num1;
var fh;
var oButton=document.getElementsByTagName("input");
for(var i=0;i<oButton.length;i++){
oButton[i].onclick=function(){
if(isNumber(this.value)){
m.value=(m.value+this.value)*1;
}
else{
var btn_num=this.value;
switch(btn_num){
case "+":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="+";
break;
case "-":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="-";
break;
case "*":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="*";
break;
case "/":
btn_num1=mathys(fh,btn_num1,m);
m.value=0;
fh="/";
break;
case "=":
switch (fh){
case "+":
m.value=btn_num1+(m.value*1);
break;
case "-":
m.value=btn_num1-(m.value*1);
break;
case "*":
m.value=btn_num1*(m.value*1);
break;
case "/":
if(m.value==0){
m.value=0;
alert("除数不能为0!");
}else{
m.value=btn_num1/(m.value*1);
}
break;
}
fh=null;
break;
}
}
}
}
}
function isNumber(n){
return !isNaN(n);
}
function mathys(fh,btn_num1,m){
if(fh==null){
btn_num1=m.value*1;
}
else{
switch (fh){
case "+":
btn_num1=btn_num1+(m.value*1);
break;
case "-":
btn_num1=btn_num1-(m.value*1);
break;
case "*":
btn_num1=btn_num1*(m.value*1);
break;
case "/":
if(m.value==0){
m.value=0;
btn_num1=0;
alert("除数不能为0!");
}else{
btn_num1=btn_num1/(m.value*1);
}
break;
}
}
m.value=0;
return btn_num1;
}
function init(){
var m=document.getElementById("num");
m.value=0;
m.disabled="disabled";
var oButton=document.getElementsByTagName("input");
var btn_num1;
var fh;
for(var i=0;i<oButton.length;i++){
oButton[i].onclick=function(){
if(isNumber(this.value)){
m.value=(m.value+this.value)*1;
}
else{
var btn_num=this.value;
switch(btn_num){
case "+":
if(fh==null){
btn_num1=m.value*1;
}
else{
switch (fh){
case "+":
btn_num1=btn_num1+(m.value*1);
break;
case "-":
btn_num1=btn_num1-(m.value*1);
break;
case "*":
btn_num1=btn_num1*(m.value*1);
break;
case "/":
btn_num1=btn_num1/(m.value*1);
break;
}
}
m.value=0;
fh="+";
break;
case "-":
if(fh==null){
btn_num1=m.value*1;
}
else{
switch (fh){
case "+":
btn_num1=btn_num1+(m.value*1);
break;
case "-":
btn_num1=btn_num1-(m.value*1);
break;
case "*":
btn_num1=btn_num1*(m.value*1);
break;
case "/":
btn_num1=btn_num1/(m.value*1);
break;
}
}
m.value=0;
fh="-";
break;
case "*":
if(fh==null){
btn_num1=m.value*1;
}
else{
switch (fh){
case "+":
btn_num1=btn_num1+(m.value*1);
break;
case "-":
btn_num1=btn_num1-(m.value*1);
break;
case "*":
btn_num1=btn_num1*(m.value*1);
break;
case "/":
btn_num1=btn_num1/(m.value*1);
break;
}
}
m.value=0;
fh="*";
break;
case "/":
if(fh==null){
btn_num1=m.value*1;
}
else{
switch (fh){
case "+":
btn_num1=btn_num1+(m.value*1);
break;
case "-":
btn_num1=btn_num1-(m.value*1);
break;
case "*":
btn_num1=btn_num1*(m.value*1);
break;
case "/":
btn_num1=btn_num1/(m.value*1);
break;
}
}
m.value=0;
fh="/";
break;
case "=":
switch (fh){
case "+":
m.value=btn_num1+(m.value*1);
break;
case "-":
m.value=btn_num1-(m.value*1);
break;
case "*":
m.value=btn_num1*(m.value*1);
break;
case "/":
m.value=btn_num1/(m.value*1);
break;
}
fh=null;
break;
}
}
}
}
}
function isNumber(n){
return !isNaN(n);
}
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星