📄 calculator.java
字号:
}//按下“=”计算完毕 } } } } else{//计算器的初值不为0 if(t==1){//若没按下点号,即进行整数的运算 if(back(e)==10) t=0; else{ if(back(e)!=15){//没有按下“=” if(!((back(e)==11)||(back(e)==12)||(back(e)==13)||(back(e)==14))){//不是"+","-","*","/" data[0]=data[0]*10+back(e); tf.setText(""+data[0]); } else{//如果按了“/” 注意除数不能为0 if(data[1]==0){// 放如data[1]里 data[1]=data[0]; data[0]=0; simple[0]=back(e); } else if(data[1]!=0&&data[2]==0){//放如data[2]里 data[2]=data[0]; data[0]=0; simple[1]=back(e); } else{//放如data[3]里 data[3]=data[0]; data[0]=0; } } } else{//按下“=”计算完毕 if(data[0]!=0){//把最后一个数字写入data数组中 if(data[1]==0){ data[1]=data[0]; data[0]=0; } else if(data[0]!=0&&data[1]!=0&&data[2]==0){ data[2]=data[0]; data[0]=0; } else{ data[3]=data[0]; data[0]=0; } tf.setText(""+calculator()); data[0]=calculator(); data[1]=data[2]=data[3]=0; simple[0]=simple[1]=11; } else{ tf.setText(""+calculator()); data[0]=calculator(); data[1]=data[2]=data[3]=0; simple[0]=simple[1]=11; }//按下“=”计算完毕 } } } else{//开始计算按下.号,即进行浮点数运算 if(back(e)!=15){//没有按下“=” if(!((back(e)==11)||(back(e)==12)||(back(e)==13)||(back(e)==14))){//不是"+","-","*","/" if(back(e)==10){ t=0; } else{ k=back(e); j++; } for(int i=j;i>0;i--){ k=(double)k/10; } data[0]+=k; tf.setText(""+data[0]); } else{//如果按了“/” 注意除数不能为0 t=1;//恢复为整数,并且计数器清零 j=0; if(data[1]==0){// 放如data[1]里 data[1]=data[0]; data[0]=0; simple[0]=back(e); } else if(data[1]!=0&&data[2]==0){//放如data[2]里 data[2]=data[0]; data[0]=0; simple[1]=back(e); } else{//放如data[3]里 data[3]=data[0]; data[0]=0; } } } else{//按下“=”计算完毕 t=1;//恢复为整数,并且计数器清零 j=0; if(data[0]!=0){//把最后一个数字写入data数组中 if(data[1]==0){ data[1]=data[0]; data[0]=0; } else if(data[0]!=0&&data[1]!=0&&data[2]==0){ data[2]=data[0]; data[0]=0; } else{ data[3]=data[0]; data[0]=0; } tf.setText(""+calculator()); data[0]=calculator(); data[1]=data[2]=data[3]=0; simple[0]=simple[1]=11; } else{ tf.setText(""+calculator()); data[0]=calculator(); data[1]=data[2]=data[3]=0; simple[0]=simple[1]=11; }//按下“=”计算完毕 } } } } protected int back(ActionEvent e){//返回按键类型 if(e.getActionCommand()=="0") return 0; else if(e.getActionCommand()=="1") return 1; else if(e.getActionCommand()=="2") return 2; else if(e.getActionCommand()=="3") return 3; else if(e.getActionCommand()=="4") return 4; else if(e.getActionCommand()=="5") return 5; else if(e.getActionCommand()=="6") return 6; else if(e.getActionCommand()=="7") return 7; else if(e.getActionCommand()=="8") return 8; else if(e.getActionCommand()=="9") return 9; else if(e.getActionCommand()==".") return 10;//定义“.” 返回10 else if(e.getActionCommand()=="+") return 11;//定义“+” 返回11 else if(e.getActionCommand()=="-") return 12;//定义“-” 返回12 else if(e.getActionCommand()=="*") return 13;//定义“*” 返回13 else if(e.getActionCommand()=="/") return 14;//定义“/” 返回14 else return 15;//定义“=” 返回15 } protected double calculator(){//具体计算 if(simple[0]==11){//第一位运算为“+” if(simple[1]==11){ return data[0]=data[1]+data[2]+data[3]; } else if(simple[1]==12){ return data[0]=data[1]+data[2]-data[3]; } else if(simple[1]==13){ return data[0]=data[1]+data[2]*data[3]; } else return data[0]=data[1]+data[2]/data[3]; } else if(simple[0]==12){//第一位运算为“-” if(simple[1]==11){ return data[0]=data[1]-data[2]+data[3]; } else if(simple[1]==12){ return data[0]=data[1]-data[2]-data[3]; } else if(simple[1]==13){ return data[0]=data[1]-data[2]*data[3]; } else return data[0]=data[1]-data[2]/data[3]; } else if(simple[0]==13){//第一位运算为“*” if(simple[1]==11){ return data[0]=data[1]*data[2]+data[3]; } else if(simple[1]==12){ return data[0]=data[1]*data[2]-data[3]; } else if(simple[1]==13){ return data[0]=data[1]*data[2]*data[3]; } else return data[0]=data[1]*data[2]/data[3]; } else{//第一位运算为“/” if(simple[1]==11){ return data[0]=data[1]/data[2]+data[3]; } else if(simple[1]==12){ return data[0]=data[1]/data[2]-data[3]; } else if(simple[1]==13){ return data[0]=data[1]/data[2]*data[3]; } else return data[0]=data[1]/data[2]/data[3]; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -