[C语言]for语句

发布于:2022-12-02 ⋅ 阅读:(263) ⋅ 点赞:(0)

在前面发布的内容中,我们已经详细讲述过了一种循环语句,即while语句,今天再来与大家分享一下for语句。

for语句的语法

for(exp1;exp2;epx3)

循环语句;

其中,exp1为初始化部分,exp2为判断部分,epx3为调整部分

下面我们用while循环和for循环都打出同一种代码来比较一下

Q:打印1-10的数字

1.while循环

#include<stdio.h>
int main()
{
int a = 0;
while(a<10)
 {
  printf("%d\n",a);
  a++;
 }
return 0;
}

2.for循环

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

这样,两个代码段一对比,我们就能明显的看出差别。在while语句中,初始化,判断,调整三部分分布较远,如果想要调整的话比较麻烦(与for循环相比),而for循环呢,可以直接在()中进行调整,比较方便。

tip

个人建议,若要使用for循环,在判断部分的变量取值最好使用前闭后开的样式。

例如:

int a;
for(a=0;a<10;a++);

int a;
for(a=0;a<=9;a++);

两个代码段表达的意思相同,都是a循环10次,可是在第一种开区间的表示中,我们可以明显看出循环次数,即a<10中的10是有意义的。

for循环中的break和continue

for循环中的break和continue其实和while循环中的相差无几。在for循环中,只要遇到了break,就跳出循环;遇到continue,就跳过后面的代码,直接进入下一次循环。

一些for循环的变种

其实,在for循环中,exp1,即判断部分可省略,但是不建议初学者省略,容易导致一些问题。

下面我给大家举例

int main()
{
	int i = 0;
	int j = 0;
	for (; i < 10; i++)
	{
		for (; j < 10; j++)
		{
			printf("hehe\n");
		}

	}
	return 0;
}
int main()
{
	int i = 0;
	int j = 0;
	for (i=0; i < 10; i++)
	{
		for (j=0; j < 10; j++)
		{
			printf("hehe\n");
		}

	}
	return 0;
}

第一种和第二种很容易看出差别,其实就是第一种for循环中的判断部分已经被省略了,那这样,我们进入第一个for循环后,进入第二个for循环,j不停的++。而在跳出第二个for循环后,i+1,此时再进入第二个for循环,发现j没有初始化部分,j已经是10了,那么就不会再次进入for循环。最终结果就是,第一个代码段打印10个hehe,第二个代码段打印100个hehe

for循环的小判断

#include <stdio.h>
int main()
{
 int i = 0;
 int k = 0;
 for(i =0,k=0; k=0; i++,k++)
        k++;
 return 0; }

判断一下一共会进行几次循环??

其实这道题考察的主要是细心程度,我们看到,在判断部分中,用了k=0这个表达式,这个与k==0可是大相径庭,k=0表示将k赋值为0,此时判断为假,则永远不进入循环