为什么“ else”没有被执行?

时间:2019-05-15 04:40:43

标签: c recursion

为什么第二printf会四次打印5个值而不是else块?

    int i=1;
    int main()
    {
       if (i<5)
       {
         i++; 
         printf("%d\n",i);
         main(); 
         printf("\n\n%d\n",i);
       }
       else
       return 0;
   }

2 个答案:

答案 0 :(得分:1)

else块正在执行。您会理解,如果在这样的else块中添加printf语句。

int i=1;
int main()
{
   if (i<5)
   {
     i++; 
     printf("%d\n",i);
     main(); 
     printf("\n\n%d\n",i);
   }
   else
   {
       printf("From Else Bloack, value of i is ",i);
   }
   return 0;
}

else块在前一个if块的条件为false时执行。

答案 1 :(得分:0)

由于elseif一起使用:if用i <5完成后,else将再也不会被调用,即使{{1 }}在i ++指令上达到5。