零基础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”
零基础C语言学习_第1张图片
对于输出结果为什么会是100行,应该搞清楚程序运行的顺序,按住ZTRL+F10进行调试并选择监视i,j,line三个变量的变化值,可知程序在进入第一个for循环之后,i的值没有变
零基础C语言学习_第2张图片
而当进入第二个for 循环时,变量j,line的值发生变化,此时程序执行第二个for循环十次直到j判断式为假,跳出第二个循环,并开始第一个循环,当i+1时,j的值被初始化为0,此时将进入第二个for循环的第二次十次循环
零基础C语言学习_第3张图片
则最后结果为打印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的含义为假,故不进入循环,验证结果如图:
零基础C语言学习_第4张图片
若将除0以外其他值赋值给k,则程序最后变为死循环;
零基础C语言学习_第5张图片

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);

检验运行结果正确,但是不能计算较大数的阶乘;
零基础C语言学习_第6张图片

你可能感兴趣的:(C语言系列,c语言)