本帖最后由 nine789 于 2015-4-29 22:09 编辑
来基础班三天了,现在遇到了一个问题,以前绝对想不到,打死我我也做不出来一个计算器
遇到一个问题,求大神帮忙解答。
我想要做的是一个计算器
但是运行后结果是错误的。
后来改了改,还是不行。。。。下面的代码是我修改后的,修改了一半。。。。求解答- import java.util.Scanner;
- class CounterDemo
- {
- public static void main(String[] args)
- {
- Scanner a1=new Scanner(System.in);
- System.out.print("输入两个数值,进行计算(只可以计算:+、-、*、/、%、^、&等\n只可计算两个数字,请输入计算公式)");
- int x=a1.nextInt();
- Scanner a3=new Scanner(System.in);
- int y=a3.nextInt();
- Scanner a2=new Scanner(System.in);
- String z=a2.nextLine();
- getCounter(x,y,z);
- //getCounter(z);
- //getCounter(y);
- }
- public static void getCounter(int x,int y,String z)
- {
- //String z ="null";
- switch(z)
- {
- case "+":
- System.out.println("x"+"z"+"y="+(x+y));
- break;
- case "-":
- System.out.println("x"+"z"+"y="+(x-y));
- break;
- case "*":
- System.out.println("x"+"z"+"y="+(x*y));
- break;
- case "/":
- System.out.println("x"+"z"+"y="+(x/y));
- break;
- case "%":
- System.out.println("x"+"z"+"y="+(x%y));
- break;
- case "^":
- System.out.println("x"+"z"+"y="+(x^y));
- break;
- case "&":
- System.out.println("x"+"z"+"y="+(x&y));
- break;
- default:
- System.out.println("输入的为非法数值,回火星上去吧");
- }
- }
- }
复制代码
没有写注释,应该都能看懂吧? 要是看不懂的话,,,,,,那我随后补上
如果不用方法封装的话,或许可以实现这个计算器,不用方法封装,就不存在 数据类型不匹配的结果了
***************************************************************************************
下面是 正确的代码,可以运行的。(没有用方法封装)不用方法封装的话,是可以运行的。
- import java.util.Scanner;
- class CounterDemo12
- {
- public static void main(String [] args)
- {
- Scanner h = new Scanner (System.in);
- System.out.println("请输入一个数字:");
- int x = h.nextInt();
- Scanner h2 = new Scanner (System.in);
- System.out.println("请输入+、-、*、/、%、^、&进行运算:");
- String y = h2.nextLine();
- Scanner h3 = new Scanner (System.in);
- System.out.println("请输入另一个数字:");
- int z = h3.nextInt();
- System.out.println("*************下面显示运算结果*************");
- switch (y)
- {
- case "+":
- System.out.println(x+"+"+z+"="+(x+z));
- break;
- case "-":
- System.out.println(x+"-"+z+"="+(x-z));
- break;
- case "*":
- System.out.println(x+"*"+z+"="+(x*z));
- break;
- case "/":
- System.out.println(x+"/"+z+"="+(x/z));
- break;
- case "%":
- System.out.println(x+"%"+z+"="+(x%z));
- break;
- case "^":
- System.out.println(x+"^"+z+"="+(x^z));
- break;
-
- case "&":
- System.out.println(x+"&"+z+"="+(x&z));
- break;
- default:
- System.out.println("输入错误,回你的火星上去吧!");
- break;
- }
- }
- }
复制代码
其实 Scanner h 和Scanner h3 是可以使用一个对象的,因为他们都是int 类型!
|