循环语句while循环

57 阅读3分钟

while循环

while作为循环语句的一种,可以执行循环

实例如下:

#include<stdio.h>
#include <stdlib.h>

//while 
int main(){
	int i = 0;
	while(i < 30000){
		printf("%d. I miss you \n", i + 1);
		i++;
	}
}

在while之后输入要循环的次数,30000次就输入30000,需求多少输入多少,演示如下:

image.png

此种称为循环变量,定一个变量i并进行循环,直至不再满足while循环条件则停止循环.

while死循环

while不止可以被条件限制循环次数,同样也能进行无限循环,也就是死循环。

while(1){
	int year;
	printf("\n请输入一个要判断的年份: ");
	scanf("%d",&year);
	if((year % 100 != 0 && year % 4 == 0)|| year % 400 == 0){
		printf("%d 是闰年",year);
	 } else{
		printf("%d 不是闰年\n",year);
	 }
	}

可以在如上代码中看出,while的条件变成了1,也就是真条件,那么此时就会死循环判断年份,演示如下:

image.png

此时不能进行退出,只能主动将其关闭

而要实现关闭也很简单,只需要加入break语句

#include<stdio.h>
//两种循环
//while
//程序一直为true,程序一直进行. 
int main(){
	//int i = 0;
	//while(i < 30000){
		//printf("%d. I miss you \n", i + 1);
		//i++;
	//}

//死循环
//跳出循环使用break 
while(1){
	int year;
	printf("\n请输入一个要判断的年份(0表示退出): ");
	scanf("%d",&year);
	if(year == 0) {
		break;
	}
	if((year % 100 != 0 && year % 4 == 0)|| year % 400 == 0){
		printf("%d 是闰年",year);
	 } else{
		printf("%d 不是闰年\n",year);
	 }
	}
	printf("此次判断已结束进程,按任意键退出判断!");
}

break语句为终止效果,只需要再加入一个if语句进行判断,即可使其停止循环,效果如下:

image.png

同理:也会存在输入负数年份的情况,同样可以输入一个if语句判断如果输入负数年份则输出你输入的年份有误!

演示如下:

#include<stdio.h>
 
int main(){
while(1){
	int year;
	printf("\n请输入一个要判断的年份(0表示退出): ");
	scanf("%d",&year);
	if(year == 0) {
		break;
	}
	if(year < 0){
		printf("你输入的年份有误,请重新输入!\n");
	} 
	else if((year % 100 != 0 && year % 4 == 0)|| year % 400 == 0){
		printf("%d 是闰年",year);
	 } else{
		printf("%d 不是闰年\n",year);
	 }
	}
	printf("此次判断已结束进程,按任意键退出判断!");
}

效果如下:

image.png

使用while循环进行累加

就像循环变量,定义一个变量并进行循环,直到满足条件则停止循环

求累加1 + 2 + 3 + ... + 100

演示如下:

#include<stdio.h>

//求累加 1 + 2 + 3 + 4 + 5 
int main(){
	int s = 0;
	int i = 1;
	
	while(i <= 100){
		printf("%d \n", i);
		s += i;
		i++;
	}
	printf("%d \n", s);
}

演示如下:

image.png

练习: 求累加1 + 3 + 5 + ... + 99

#include<stdio.h>

//求累加 1 + 3 + 5 + ... + 99 
int main(){
	int s = 0;
	int i = 1;
	
	while(i < 100){
		printf("%d \n", i);
		s += i;
		i += 2;
	}
	printf("%d \n", s);
}

效果如下:

image.png

练习: 求累加2 + 4 + 6 + ... + 100

#include<stdio.h>

//求累加 2 + 4 + 6 + ... + 100 
int main(){
	int s = 0;
	int i = 2;
	
	while(i <= 100){
		printf("%d \n", i);
		s += i;
		i += 2;
	}
	printf("%d \n", s);
}

效果如下:

image.png