零基础C语言学习

                   *c语言学习笔记(七)*

一、for循环的初始化,调整、判断都可以省略;但是如果判断部分省略,则判断恒为真,可能造成死循环;
关于for循环嵌套,是允许嵌套的,下面一段代码:

int i = 0;
int j = 0;
int line = 0;
for (i = 0; i < 10; i++)
{
	for (j = 0; j < 10; j++)
	{
		line++;
		printf("%d.hehe\n", line);
	}
}     

程序运行结果为输出了100行“hehe”
在这里插入图片描述
对于输出结果为什么会是100行,应该搞清楚程序运行的顺序,按住ZTRL+F10进行调试并选择监视i,j,line三个变量的变化值,可知程序在进入第一个for循环之后,i的值没有变
在这里插入图片描述
而当进入第二个for 循环时,变量j,line的值发生变化,此时程序执行第二个for循环十次直到j判断式为假,跳出第二个循环,并开始第一个循环,当i+1时,j的值被初始化为0,此时将进入第二个for循环的第二次十次循环
在这里插入图片描述
则最后结果为打印100次hehe。
二、请问下段代码循环多少次?为方便计算,输出一行文字。

int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0;i++, k++)
{
	k++;
	printf("hehe\n");

}

答案为0次,首先for语句要判别为真才能进入循环,而代码中将k的判断语句将k赋值0,0的含义为假,故不进入循环,验证结果如图:
在这里插入图片描述
若将除0以外其他值赋值给k,则程序最后变为死循环;
在这里插入图片描述

do while循环语句

do语句的用法:
do
循环语句;
while(表达式);
关于do-while循环的执行顺序,先执行do后面的语句,不判断,然后判断while里面的表达式,若为真,则循环继续,若为假,循环终止;
关于break和continue在do循环中的具体作用,可以通过一段代码验证:

int i = 0;
do
{
	if (i == 5)
		continue;
	printf("%d ", i);
	i++;
} while (i <= 10);

continue:打印 0 1 2 3 4之后死循环;
break:打印0 1 2 3 4,程序终止;
关于do循环语句的最大特点为循环至少执行一次;
练习题:编写程序可以计算n的阶乘。
本人写出的一段代码,可能比较笨拙请见谅;

int i = 1;
int j = 1;
int ret = 1;
printf("输入数字:\n");
scanf("%d", &j);
do
{
	
	
	ret = ret*i;
	i++;
	
		
} 
while (i <= j);
printf("%d ", ret);

检验运行结果正确,但是不能计算较大数的阶乘;
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值