これは、学習プロセス中に書いた簡単なコードです。
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 本のビール。1 本を降ろして回し、壁に 98 本のビールを。1 本をリサイクル用ビンに入れると、1 本の空のビンがビンにある」 「壁に98本のビール、98本のビール。1本降ろして回し、壁に97本のビール。1本のボトルをリサイクルビンに入れると、2本の空のボトルがビンにある」
私は彼が初心者であることを知っています、私は初心者です。誰かが私にこれを説明してくれるので、サークルに入るのをやめます。ありがとう!