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