简易的打折与累加计算器
在Java的学习中,碰到了一个题目,要求设计一个简易打折与累加计算器。在上一篇博客中,我们成功地设计了一个简易的四则运算计算器,今天,我们就来改进一下我们的计算器,让我们的计算器可以进行累加计算。<我的Java学习记录02_m0_62713315的博客-优快云博客>
思路
- 打折计算即为float或double类型的运算;
- 在计算器中加入一个循环语句来进行重复计算;
- 完成打折计算器后,在其中增加累加程序。
打折计算器
我们可以在我们之前的那个四则运算计算器中,加入一个循环语句,实现多次的运算。代码如下:
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
while ( Y_N( ) != 0) //调用方法判断是否循环
{
input_output(); //调用输入输出方法
}
}
static double calculate( double x, char y, double z)
{
double res = 0;
switch( y )
{
case '+':
res = x + z;
break;
case '-':
res = x-z;
break;
case '*':
res = x * z;
break;
case '/':
res = x/z;
break;
default:
System.out.println("无法计算");
}
return res;
}
static void input_output()
{
double a = 0, b = 0;
char c = '0';
System.out.println("请输入第一个数");
Scanner in = new Scanner(System.in);
a = in.nextDouble();
System.out.println("请输入运算符号");
c = in.next().charAt(0); //调用String 对象的charAt() 方法来获取第一个字符
System.out.println("请输入第二个数");
b = in.nextDouble();
double res = calculate( a, c, b);
System.out.println("-->" +res);
}
static int Y_N()
{
System.out.println("是否继续计算: Y / N");
Scanner in = new Scanner(System.in);
String symbol = in.nextLine();
if("Y".equals( symbol) || "y".equals( symbol))
/*equals( )方法是Java中判断两个对象是否相等的方法*/
return 1;
else
{
System.out.println("谢谢使用!");
return 0;
}
}
}
运行结果如下:
这样,我们就成功地设计了一个能够重复进行计算的打折计算器了。
累加计算器
既然我们做出了一个打折计算器,那么我们只要能在其中加入一个累加计算的模块,那么我们就可以成功地设计出一个能够计算打折和累加的计算器了。但是,怎么才能加入一个累加的模块呢?这个问题困扰了我很久。我尝试在input_output( );
方法中加入,但是计算结果在每次循环后都会重置。在失败了多次后,终于,我成功地设计出了能够计算累加的计算器。我们只需要定义一个全局变量来固定方法中计算得到的累加和,之后再输出这个值就行了。代码如下:
import java.util.Scanner;
public class Add
{
static double sum; //定义一个全局变量
public static void main(String[] args)
{
while ( Y_N( ) != 0)
{
input_output();
System.out.println("一共为"+sum);
}
}
static double calculate( double x, char y, double z)
{
double res = 0;
switch( y )
{
case '+':
res = x + z;
break;
case '-':
res = x-z;
break;
case '*':
res = x * z;
break;
case '/':
res = x/z;
break;
default:
System.out.println("无法计算");
}
return res;
}
static void input_output()
{
double a = 0, b = 0;
char c = '0';
System.out.println("请输入第一个数");
Scanner in = new Scanner(System.in);
a = in.nextDouble();
System.out.println("请输入运算符号");
c = in.next().charAt(0); //调用String 对象的charAt() 方法来获取第一个字符
System.out.println("请输入第二个数");
b = in.nextDouble();
double res = calculate( a, c, b);
System.out.println("-->" +res);
sum += res; //计算累加和
}
static int Y_N()
{
System.out.println("是否继续计算: Y / N");
Scanner in = new Scanner(System.in);
String symbol = in.nextLine();
if("Y".equals( symbol) || "y".equals( symbol))
/*equals( )方法是Java中判断两个对象是否相等的方法*/
return 1;
else
{
System.out.println("谢谢使用!");
return 0;
}
}
}
这样,我们就成功地完成了任务,设计了一个能够进行重复计算的打折与累加计算器。