好的,这是我在学习过程中编写的简单代码。
void SingTheSong (int NumOfBottles)
{
if (NumOfBottles == 0){
printf("there are simply no more bottles of beer on the wall. \n");
}
else {
printf("%d bottles of beer on the wall, %d bottles of beer.\n", NumOfBottles, NumOfBottles);
int Bottleless = NumOfBottles - 1;
printf("Take one down pass it around, %d bottles of beer on the wall. \n", Bottleless);
SingTheSong(Bottleless);
printf("Put a bottle in the recycling bin, there are now %d empty bottles in the bin.\n", NumOfBottles);
}
}
int main(int argc, const char * argv[])
{
SingTheSong(99);
return 0;
}
我唯一不明白的是为什么程序运行时 SingTheSong(Botteless) 函数从 1 开始,为什么在墙上有 0 瓶啤酒后它显示 printf() 语句。只是有点困惑,因为我认为花括号中的所有内容都在 else 语句中被执行,然后再运行 else 语句。为什么不是这样?
示例:“墙上有 99 瓶啤酒,99 瓶啤酒。拿下一个,传过来,墙上有 98 瓶啤酒。将一瓶放在回收箱中,现在垃圾桶里有 1 个空瓶” “墙上98瓶啤酒,98瓶啤酒。拿下来,传过来,墙上97瓶啤酒。把一瓶放在回收箱里,现在垃圾桶里有2个空瓶子”
我知道他是初学者的东西,我是初学者。有人可以向我解释一下,所以我不再绕圈子了。谢谢!