当然有用,用过 Windows 控制台的应该不陌生,它会一直等待你输入命令,不会主动结束,这就像极了死循环。
- 那在C语言中死循环有什么用?假如让你写一个程序,要求是用户输入年份和月份,输出这个月有几天。如果不用死循环,结果是什么?
- 代码:
#include<stdio.h>
int leap_year(int year, int month);
int main() {
int year, month;
printf("请输入年份和月份:");
scanf_s("%d.%d", &year, &month);
int days[12] = { 31,leap_year(year,month),31,30,31,30,31,31,30,31,30,31 };
printf("这个月有%d天\n", days[month - 1]);
}
//判断这一年是否为闰年,是返回29,不是返回28
int leap_year(int year, int month) {
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 29;
}
else
return 28;
}
}
- 结果是输入一次就得退出,想要使用就得打开从新输入:
- 用了死循环是什么结果?这里就用最简单的死循环:
while(1)
- 代码:
#include<stdio.h>
int leap_year(int year,int month);
int main() {
int year, month;
while (1) {
printf("请输入年份和月份:");
scanf_s("%d.%d", &year, &month);
int days[12] = { 31,leap_year(year,month),31,30,31,30,31,31,30,31,30,31 };
printf("这个月有%d天\n",days[month-1]);
}
}
//判断这一年是否为闰年,是返回29,不是返回28
int leap_year(int year,int month) {
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 29;
}else
return 28;
}
}
- 结果是可以一直输入,方便简单: