这段if语句中为何添加return?

请da佬帮忙看看

#include
using namespace std;
int main()
{

为啥这段代码中if语句中的return 0一定要写,不写就会死循环

//创建一个数组表示0—9各有2021张
int a[10];
for (int i = 0;i < 10;i++)
{
    a[i] = 2021;
}
//
for (int i = 0;;i++)
{
    int temp = i;
    while (temp != 0)
    {
        int t=temp % 10;//取到当前尾数
        if (a[t] > 0)
        {
            a[t]--;//未耗尽则使用卡片,卡片数-1
            temp = temp / 10;//除以10以便下次循环取到前一个数字
        }
        if (a[t] <= 0)//卡片张数说明已经耗尽则输出前一个数
        {
            cout << i - 1 << endl;
            return 0;
        }
        
    }
}
system("pause");
return 0;

}

for循环结束条件为空,for循环成了死循环,要在循环体中结束循环。

这段代码中,在第二个 for 循环中,i 会从0一直循环到无穷大。如果if语句中没有 return 0,那么这个循环会一直进行下去,导致程序进入死循环,无法结束。


具体说来,在这个程序中,if语句中的 return 0 用于在满足条件的时候结束程序。如果不加 return 0,就没有可以结束程序的条件,程序会进入死循环。

  • 当a[t]<=0的时候,输出前一个数,并且因为需要结束程序所以让程序return 0

这段代码中,最外层的 for 循环是一个死循环,它会不断地进行循环,直到找到符合条件的结果。而在内层的 while 循环中,当找到了符合条件的结果时,如果不加上 return 0,程序就会继续运行,不会结束,导致程序卡在那里,不会停止,这就是所谓的死循环。而加上 return 0 就会结束程序。