用Java做一个计算器
先做个壳子出来
public class Calculate {
static{
System.out.println("----------------------------");
for(int i=1;i<=4;i++){
for (int j = 0; j < 17; j++) {
if(j==0){
System.out.print("|");
}else if(j==16){
System.out.println("|");
}else{
System.out.print(" ");
}
if(i==1&&j==8) System.out.print("加法:请输入1");
if(i==2&&j==8) System.out.print("减法:请输入2");
if(i==3&&j==8) System.out.print("乘法:请输入3");
if(i==4&&j==8) System.out.print("除法:请输入4");
}
}
System.out.println("----------------------------");
}
public static void main(String[] args) {
}
}
2021年08月01日00:37:21
太笨了,想了好几天才知道怎么做出来 = =
2021年8月02日15:26
package Jc;
import java.util.Scanner;
public class Calculate2 {
Scanner scan;
int number;
boolean flag ;
int sum ;
int[] figurelist = new int[100];
int count;
static{ //最开始傻傻的想到静态代码块,后来发现可以写一个菜单方法表示,但已经写了就不想删掉了 =_=
System.out.println("----------------------------");
for(int i=0;i<=4;i++){
for (int j = 0; j < 17; j++) { //循环打印出格子
if(j==0){
System.out.print("|");
}else if(j==16){
System.out.println("|");
}else{
System.out.print(" ");
}
if(i==0&&j==8) System.out.print("退出,请输入0");
if(i==1&&j==8) System.out.print("加法:请输入1");
if(i==2&&j==8) System.out.print("减法:请输入2");
if(i==3&&j==8) System.out.print("乘法:请输入3");
if(i==4&&j==8) System.out.print("除法:请输入4");
}
}
System.out.println("----------------------------");
System.out.println("输入空格表示一个数字,输入0按下回车代表运算结束");
}
public Calculate2(){
scan=new Scanner(System.in);
}
public void run(){ //用switch-case写了个展示的选项,输入数字即可打开相应的功能
int userChoice = 0;
do{
userChoice=scan.nextInt();
switch(userChoice){
case 0: //退出循环
System.out.println("谢谢您的使用!");
break;
case 1: //加
add();
break;
case 2: //减
subtract();
break;
case 3: //乘
multiply();
break;
case 4: //除
divide();
break;
default: //其他输入
System.out.println("请输入有效关键字,谢谢!");
}
}while(userChoice!=0);
scan.close(); //结束时关闭,避免内存消耗
}
public void add(){
flag = true; sum = 0;
System.out.println("目前运行的是加法:");
while(flag){
number = scan.nextInt(); //获取键盘输入
if(number==0)flag=false; //输入0时,终止循环
sum+=number;
}
System.out.println("结果是:"+sum); //输出结果
}
public void subtract() {
System.out.println("目前运行的是减法:");
flag = true;
count = 0;
while (flag) {
number = scan.nextInt();
figurelist[count] = number; //一开始想跟加法一样写直接算的代码,但是总会把第一个数字给减掉,想了很久最后用了数组
if (number == 0) break;
count++;
}
sum=figurelist[0]; //这样设置就不会把第一个数字减掉了
if(count==1) //一个数字时直接输出
System.out.println("结果是:"+sum);
else{
for(int i = 1; i <= count-1; i++){ //sum已经等于第一个数字了,所以直接从第二个数字开始,count-1的目的是防止0进入数组
sum-=figurelist[i];
}
System.out.println("结果是:"+sum);
}
}
public void multiply(){
System.out.println("目前运行的是乘法:");
flag = true;
count = 0;
while(flag){
number = scan.nextInt();
figurelist[count] = number;
if(number == 0) break;
count++;
}
sum=figurelist[0];
if(count==1)
System.out.println("结果是:"+sum);
else{
for (int i = 1; i <= count-1; i++) { //思路同subtract
sum*=figurelist[i];
}
System.out.println("结果是:"+sum);
}
}
public void divide(){
System.out.println("目前运行的是除法:");
flag = true;
count = 0;
while(flag){
number = scan.nextInt();
figurelist[count] = number;
if(number == 0) break;
count++;
}
sum=figurelist[0];
if(count==1)
System.out.println("结果是:"+sum);
else{
for (int i = 1; i <= count-1; i++) {
sum/=figurelist[i]; //按理来说要设置一个分母为0时,输出不合法的选项。但是我设置的是输入0就停止运行程序,所以就偷懒没写了^ ^
}
System.out.println("结果是:"+sum);
}
}
public static void main(String[] args) {
Calculate2 myCalculate2 = new Calculate2();
myCalculate2.run();
}
}