C语言——分支和循环语句(二)

while循环

语法格式

while(表达式)	//如果有多条语句则需要加上大括号{ }
	语句; 		//循环体

if语句与while的对比

while循环语法结构与前面我们讲的 if 语句的表达式十分相似。
语法格式:

if(表达式)	
	语句; 
while(表达式)	//如果有多条语句则需要加上大括号{ }
	语句; 		//循环体

提示: if语句与while循环都是先判断表达式的值,根据该值的结果(真或假)看是否要执行下方语句;不同的是,if的表达式只使用一次。while的表达式要使用很多次,当表达式为真(非0),执行循环体,然后再次判断表达式的值,如果仍为真,继续执行循环体,否则循环结束跳出while循环。

举个栗子:
if语句

#include<stdio.h>
int main()
{
	int n = 10;
	if (n > 0)		
		printf("hehe\n");
	return 0;
}

解析:if语句中的表达式只执行一次。因为10>0所以执行下面的语句,打印一次hehe结束
在这里插入图片描述

while循环

#include<stdio.h>
int main()
{
	int n = 10;			
	while (n > 0)		
		printf("hehe\n");
	return 0;
}

解析:while循环的表达式会使用多次。第一次:n=10,10>0屏幕打印一次hehe,第二次:n=10,10>0屏幕打印再次hehe…我们会发现10永远都大于0,所以我们可以看到屏幕会一直输出打印 hehe。
这也提醒了我们要设置合理的表达式,不然就会出现死循环。
在这里插入图片描述

小试牛刀

在屏幕上打印1-10的值

分析:我们要出现1-10的值,那么我们需要一个变量 i 并赋予它初值为1;我们要打印多个数字,所以我们用一个 while 循环,因为只需要打印10个数字,所以表达式为 i<=10;最后利用自增运算打印1,2,3,4…由此我们可以得到以下代码

#include<stdio.h>
int main()
{
	int i = 1;
	while (i<=10) {			//i=1,1<10打印i并执行i++;i=2,2<10打印i并执行i++...以此类推。当i=11,11>10表达式为假所以结束循环
		printf("%d", i);
		i++;	//i=i+1
	}
	return 0;
}

for循环

语法格式

for(表达式1;表达式2;表达式3)	//表达式由分号隔开
	语句;		//如果有多条语句则需要加上{ }

提示: 表达式1是初始化表达式,它只执行一次;表达式2是判断表达式;表达式3是调整(多数情况为自增、自减运算)。

举个栗子:
在屏幕上打印1-10

#include<stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i < =10; i++)
		printf("%d ", i);
	return 0;
}

解析:i=1,1<10打印 i,然后执行 i++此时 i=2;2<10打印 i,然后执行 i++此时i=3…依次类推,当 i=11时,11>10跳出循环执行return 0;

while循环和for循环对比

在屏幕上打印1-10
在这里插入图片描述
通过上面我们可以看到,while循环和for循环都有初始化、判断、调整。不同的是for循环的这三个部分非常集中,有助于我们对代码的维护,while循环比较分散。

do while循环

语法格式

do
	语句;			//循环体	
while(表达式);	//注意表达式后面有分号

先执行语句,再看表达式;如果表达式为真,再次执行语句,如果表达式为假,结束do while循环。 注意do while的循环体至少执行一次

举个栗子

#include <stdio.h>
int main()
{
	int i = 1;
	do 
	{
		printf("%d ", i);
		i++;

	}while (i <= 10);
	return 0;
}

解析:i=1进入do-while循环,先打印 i 的值1,然后执行 i++ 此时 i=2 , 2<=10继续循环,打印 i 的值2,然后执行 i++此时 i=3, 3<=10继续循环以此类推,当 i++的值为11时跳出循环。此时屏幕会打印出1-10。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值