问题描述
- 我怎么通过运算符来计算,我是直接调用方法计算的,楞是想不出怎么通过运算符这个属性来搞
-
写一个计算器类,包含第一个数字,第二个数字,运算 符三个属性,加减乘除4个方法,计算50X2/4>>2的结果,并判断这个 值是否大于30且小于60,并给出不同的提示.
下面是我写的代码,我没用到运算符这个属性,怎么用到这个属性啊
public class Computer{
public int num1;
public int num2;
public char operator;
//加方法
public float sum(int num1,int num2){
int sum = num1+num2;
return sum;
}
//减方法
public float minus(int num1,int num2){
int minus = num1 - num2;
return minus;
}
//乘方法
public int mul(int num1,int num2){
int mul = num1 * num2;
return mul;
}
//除方法
public int div(int num1,int num2){
int div=0;
if(num2==0)
System.out.println("出错,除数不能为0");
else
{
div = num1/num2;
return div;}
return div;
}
public static void main(String[] args){
Computer result = new Computer();int res=result.div(result.mul(50,2),4)>>2; System.out.println(res); if(res>30&&res<60) System.out.println("值大于30且小于60"); else if(res<=30) System.out.println("值小于或等于30"); else if(res>=60) System.out.println("值小于或等于60"); }
}
解决方案
增加一个方法
public float opt(int num1,int num2,char operator){
switch(operator){
case '+':
//调用加的函数
break;
case '-':
//调用加的函数
break;
case '*':
//调用加的函数
break;
case '/':
//调用加的函数
break;
}
}
调用时result.opt(50,2,'*');
解决方案二:
你的计算方法都是public的了,外部可以直接调用了就不用运算符了,如果你想用的话,就将你的计算法私有化,然后根据传入的运算符来判断具体调用哪个计算方法。上面有大神给出了switch方法来判断,注意的是这个要1.7版本或以上版本的jdk支持。
解决方案三:
C++中的运算符和计算顺序
C# 训练场(二)用运算符重载实现矩阵计算
解决方案四:
public float opt(int num1,int num2,char operator){
switch(operator){
case '+':
//调用加的函数
break;
case '-':
//调用加的函数
break;
case '*':
//调用加的函数
break;
case '/':
//调用加的函数
break;
}
}
调用时result.opt(50,2,'*');
时间: 2024-10-16 06:15:06