Javaの計算について
解決したいこと
ここに解決したい内容を記載してください。
Javaで、以下の様な2つのクラスで各計算のメソッドが書かれておりますが、
どの様に処理が働いて計算されているかが理解できません。
よろしければ解説をお願いします。
※スマホからの記載なので、ソースのズレはご容赦ください。
Calc.java
public class Calc {
private double total;
public Calc () {
init();
}
public void add(int operand1,int operand2) {
total = operand1 + operand2;
}
public void sub(int operand1,int operand2) {
total = operand1 - operand2;
}
public void multi(int operand1,int operand2) {
total = operand1 * operand2;
}
public void div(int operand1,int operand2) {
total = operand1 / operand2;
}
public void mod(int operand1,int operand2) {
total = operand1 % operand2;
}
public void pow(int operand1,int operand2) {
int total = 1;
for (int i = 0; i < operand2; i++) {
total = total * operand1;
public double getTotal() {
return total;
}
public void init() {
total = 0;
}
Main.java
public class Main {
public static void main(String[]args) {
Calc c = new Calc();
try {
int operand1 = Integer.parseInt(args[0]);
String operator = args[1];
int operand2 = Integer.parseInt(args[2]);
boolean errflg = true;
switch(operator) {
case "+":
c.add(operand1,operand2);
break;
case "-":
c.sub(operand1,operand2);
break;
case "*":
c.multi(operand1,operand2);
break;
case "/":
c.div(operand1,operand2);
break;
case "%":
c.mod(operand1,operand2);
break;
case "^":
c.pow(operand1,operand2);
break;
}
default:
System.out.println("演算子がありません");
errFlg = false;
break;
BigDecimal total = BigDecimal.valueOf(c.getTotal());
if(total.scale() == 0) {
DecimalFormat format = new DecimalFormat("#.0");
System.out.println(operand1 + "" + operator + "" + operand2 + "=" + format.format(total));
} else {
System.out.println(operand1 + operator + operand2 + "=" + total.toPlainString());
}
}catch(NumberFormatException e) {
System.out.println("入力値が正しくありません");
}
}
}
0 likes