A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chulangren2 中级黑马   /  2014-7-16 22:59  /  1502 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何实现一个控制台简易计算器代码如下:

import java.util.Scanner;
class Homework6
{
        public static void main(String[] args)
        {
                System.out.println("******************************");
                System.out.println("*  欢迎使用控制台计算器程序  *");
                System.out.println("*  作者:XXX 2014-07-16  *");
                System.out.println("******************************");
      
                Scanner s= new Scanner(System.in);
               
            System.out.print("请您输入整数数:");
                int result = s.nextInt();
                String str="("+result;
                boolean flag=true;
               
                do{
                  System.out.print("1(+) , 2(-) , 3(*) , 4(/) 请您选择运算符:");
                  int op =s.nextInt();
                  System.out.print("请您输入整数:");
                  int num= s.nextInt();
                  switch(op){
                   case 1: str+="+"+num;
                               result+=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
                   case 2:  
                           str+="-"+num;
                               result-=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
           case 3:
                           str+="*"+num;
                               result*=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
                   case 4:  
                                   if(num==0)
                               {System.out.print("您输入的数字是非法的!请从新输入:");
                                    num=s.nextInt();
                                   }
                                   str+="/"+num;
                               result/=num;
                               System.out.println("运算结果"+result);
                                   System.out.println("表达式 :"+str+")");
                           break;
                                  
           default: System.out.println("亲 请您输入 1或者2或者3或者4!");
                            break;
                 }
                     System.out.print("1(继续) 2(退出) 3(清除) 请您选择接下来要进行的操作:");
                     int op1=s.nextInt();
                 switch(op1){//操作
                   case 1:
                               break;
                   case 2: flag=false;
                               break;
                   case 3: str="";
                           result=0;
                           System.out.println("已清空历史,请您继续使用……");
                                   System.out.print("请您输入整数数:");
                                   result = s.nextInt();
                                   str="("+result;
                               break;
                 }
        }while(flag);
        }
}
感觉自己做的还太粗糙,希望各路大神能给更好的建议。

评分

参与人数 1黑马币 +1 收起 理由
菜小徐 + 1

查看全部评分

3 个回复

倒序浏览
main方法里可以不要这么胖,把do..while()可以写成一个方法,这样会简洁很多
回复 使用道具 举报
╄Tracyぺ 发表于 2014-7-17 00:37
main方法里可以不要这么胖,把do..while()可以写成一个方法,这样会简洁很多

是啊,我们正在努力朝这个方向来。
回复 使用道具 举报
其实可以做更多的限制,获得更好的体验感,正在努力。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马