なぜこのコードが5を返しますか?最初はif 5%2 = 1を返し、falseならif(1)を返します。なぜそうですか。C++でのif文によるモジュロ動作
#include <iostream>
using namespace std;
int fn_test(int i=5)
{
if(i%2) return i++;
else
return fn_test(i-1);
}
int main()
{ int test=fn_test(5);
cout<< " this is out put " << test;
return 0;
}
モジューロは整数の除算の余りを与えますので、実際に何を期待しましたか? –
ところで、再帰呼び出し、 '++'、およびデフォルトの引数を削除することで、例を簡略化できます。 – Jarod42
@Hassan '5%2'は' 1'を返します。それは 'true'に相当します。 '0'以外の数値は' true'に変換されます。 –