現在Javaを学習中です。Javaについてふと疑問に思ったことがあったので質問したいです。
Java
1class Calculator { 2 private double sum; 3 private static int n; 4 5 public Calculator() { 6 sum = 0.0; 7 n = 0; 8 } 9 10 public Calculator(double x) { 11 sum = x; 12 n = 0; 13 } 14 15 public double getSum() { 16 return sum; 17 } 18 19 public int getN() { 20 return n; 21 } 22 23 public double plus(double x) { 24 sum += x; 25 n++; 26 return sum; 27 } 28 29 public double minus(double x) { 30 sum -= x; 31 n++; 32 return sum; 33 } 34 35 public double multiplied(double x) { 36 sum *= x; 37 n++; 38 return sum; 39 } 40 41 public double divided(double x) { 42 sum /= x; 43 n++; 44 return sum; 45 } 46} 47 48class NewCalculator extends Calculator { 49 public NewCalculator() { 50 super(0.0); 51 } 52 53 public NewCalculator(double x) { 54 super(x); 55 } 56 57 public void plus_n(double x, int n) { 58 for(int i=1; i<=n; i++) 59 plus(x); 60 } 61 62 public void multiplied_n(double x, int nn) { 63 for(int i=1; i<=nn; i++){ 64 multiplied(x); 65 } 66 } 67} 68 69class Exercise5_3 { 70 public static void main(String[] args) { 71 NewCalculator cal1 = new NewCalculator(10); 72 NewCalculator cal2 = new NewCalculator(); 73 cal1.divided(3.0); 74 cal1.multiplied_n(5.0, 3); 75 cal2.plus_n(5.0, 3); 76 cal2.minus(3.5); 77 cal2.multiplied_n(2.0, 3); 78 79 System.out.println("計算機1の計算結果は" + String.format("%.3f", cal1.getSum())); 80 System.out.println("計算機2の計算結果は" + String.format("%.3f", cal2.getSum())); 81 System.out.println("計算機1のスーパークラスの呼ばれた回数は" + cal1.getN() + "回です。"); 82 System.out.println("計算機2のスーパークラスの呼ばれた回数は" + cal2.getN() + "回です。"); 83 84 } 85}
上記のプログラムのうちの計算部分
public double plus(double x) {
sum += x;
n++;
return sum;
}などにおいてsum+=x;とreturn文を一つの文で記述することは可能なのでしょうか?
ためしにreturn sum + x;などで試してみたのですがこれだと計算がされずに出力されてしまいました。もし一つの文にまとめるとしたらどう記述すればいいのか教えていただけると幸いです。またできたらreturn sum + x;でできない理由も教えてください
回答4件
あなたの回答
tips
プレビュー