#include<iostream>
using namespace std;
int add(int c)
{
? ? int a=0;
? ? c&&(a=add(c-1));//遞歸循環(huán),直到傳入c的值為0則結(jié)束循環(huán)
? ? cout<<c+a<<endl;
return c+a;
}
int main()
{
add(10);
return 0;
}
運(yùn)行結(jié)果:
0
1
3
6
10
15
21
28
36
45
55
記錄1:?可以利用邏輯與(&&)的運(yùn)算特性,實(shí)現(xiàn)if的功能:c&&(a=add(c-1));
記錄2:遞歸運(yùn)行是:每一層都不會立即返回,直到最后一層(下一層因?yàn)闂l件為假,不再調(diào)用),才一層一層的返回值。
記錄3:上面的 c&&(a=add(c-1));? 可以改為:(!c)||(a=add(c-1)); 利用邏輯或?qū)崿F(xiàn)同樣的效果。