return ステートメントにインクリメント操作が含まれている場合、return が最初に実行され、インクリメントされる前に値が返されることを学びました。別のステートメントで最初にインクリメントしてから戻ると、期待どおりに機能します。
private static int incrementIntV1(int a)
{
return a++;
}
private static int incrementIntV2(int a)
{
a++;
return a;
}
public static void main(String[] args)
{
int b = 6;
System.out.println("Increment in return: " + incrementIntV1(b));
System.out.println("Increment first, then return: " + incrementIntV2(b));
System.out.println("Increment with addZero: " + incrementAddZero(b));
}
return で何が起こっているので、式全体を評価する場合と評価しない場合がありますか? これは、インクリメント操作がどのように行われるかについて特別なことですか?
私が試してみると:
private static int incrementAddZero(int a)
{
return a++ + addZero();
}
private static int addZero()
{
System.out.print("addZero executes");
return 0;
}
インクリメント操作はまだ行われていませんが、print ステートメントによって addZero メソッドが実行されることはわかっています。戻り前にインクリメントしないのに、戻り前に addZero メソッドを実行するのはなぜですか?
彼が理にかなっていることを願っています。ありがとうございます。