アプリ版:「スタンプのみでお礼する」機能のリリースについて

次のようにすればiを1づつ増やして表示されます。

class Calc{
  int i=1;
  int add(){
    return i++;
  }
}


class Count{
  public static void main(String[] args){
    Calc calc = new Calc();
    System.out.println("i = " + calc.add());
    System.out.println("i = " + calc.add());
    System.out.println("i = " + calc.add());
  }
}

実行結果
i = 1
i = 2
i = 3


しかし次のように2づつ増やそうとすると、

class Calc{
  int i=1;
  int add(){
    return i+2;
  }
}


class Count{
  public static void main(String[] args){
    Calc calc = new Calc();
    System.out.println("i = " + calc.add());
    System.out.println("i = " + calc.add());
    System.out.println("i = " + calc.add());
  }
}

実行結果
i = 3
i = 3
i = 3


このようになってしまいます。どこがおかしいのでしょうか?

A 回答 (2件)

No.1です。


ちょっと間違ったようですが。

i++では戻り値は旧いiでそのあと+1しているはずです。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
i=i+2;
return i;
とすれば2づつ増えて実行できました。とても勉強になりました。

お礼日時:2006/06/17 20:34

i++はi=i+1の略です。


iを加算して新しいiを戻り値とします。

i+2ではi+2を戻り値とするだけで加算はされません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!