java计算器-基础语法训练
源代码:
package base; import java.util.Scanner; public class FenShu { public static void main(String[] args) { jisuan(); } public static void add(double a,double b){ System.out.println("加法运算结果 "+(a+b)); } public static void jifa(double a,double b){ System.out.println("减法运算结果 "+(a-b)); } public static void chufa(double a,double b){ if (b!=0) { System.out.println("除法运算结果 "+(a/b)); }else{ System.out.println("输出错误"); } } public static void cfa(double a,double b){ System.out.println("乘法运算结果 "+(a*b)); } public static void jisuan(){ Scanner in=new Scanner(System.in); System.out.println("输入第一个算数 "); double a=in.nextDouble(); while (true) { System.out.println("输入选择 + - * / ,输入#退出"); String xuanze=in.next(); if(xuanze.equals("#")){ System.out.println("已经退出"); break;//退出循环 } if(!(xuanze.equals("+")||xuanze.equals("-")||xuanze.equals("*")||xuanze.equals("/"))){//如果输入的不是正常的运算符号,就重新输入 System.out.println("输入错误"); continue;//跳转到开始,重新选择 } System.out.println("请输入第二个算数"); double b=in.nextDouble(); switch (xuanze){ case "+": add(a,b); break; case "-": jifa(a,b); break; case "*": cfa(a,b); break; case "/": chufa(a,b); break; default: System.out.println("输出错误"); break; } } in.close();//关闭资源 } }
此版本的计算器,能持续运算,每次运算都与上次运算结果相关联,每次都只能输入一个算数,上面的while(true)死循环是为了每次运算结果叠加
注意点:
Scanner类的next()方法是不会读取空格的,例: 123 10。 读取结果只是前面那个数字123
最后还要关闭Scanner流,管理资源
在循环中
continue,是停止此次循环,然后再回到循环开始,重新判断。
break是关闭循环(但是不关闭程序)
(return 0是直接关闭程序)