1.语法格式
for循环的语法格式为:for(表达式1;表达式2;表达式3)
循环语句
其中表达式1为初始化部分,用于初始化变量
表达式2为条件判断部分,用于判断循环是否终止
表达式3为调整部分,用于循环条件的调整
那么现在我们就可以尝试使用for循环来打印1~10
#include<stdio.h>
int main()
{
int i = 0;
for(i = 1;i<=10;i++)
printf("%d ",i)
return 0;
}
#include<stdio.h>
int main()
{
int i = 0;
while(i<=10)
printf("%d ",i);
return 0;
}
上面两段代码都是用来打印1~10的,可以看出while循环在代码不复杂的情况下与for循环差别不大,但是如果我们代码的逻辑很复杂,需要声明很多变量,那么此时我们去使用while循环就会导致变量初始话与判断条件力的很远,如果出现错误很难去调试,所以此时for循环的优势就体现出来了,for循环中变量初始化,条件判断与调整部分都是在一起的,方便我们进行调试,当然也不是说while不能用,看自己的习惯吧。
当然for循环也跟while循环一样只能接一个语句,如果想要接多个语句则需要大括号,跟while循环是一摸一样的,不过在这里提一嘴,如果循环语句内嵌套一个分支语句是不需要大括号的,一个完整的分支语句才算一个语句。
2.for循环中的break continue
for循环中的break与while循环中的break作用是一样的,用于永久终止循环
int main()
{
int i = 0;
for(i = 1;i<=10;i++)
if(5==i)
break;
else
printf("%d ",i);
return 0;
}
此时这段代码的输出结果就是打印1~4当i == 5时会跳出循环,这与while循环是一致的,不过当我们把break换成continue时,就会得到不一样的结果
int main()
{
int i = 0;
for(i = 1;i<=10;i++)
if(5==i)
continue;
else
printf("%d ",i);
return 0;
}
此时这段代码将会打印1~10没有5
#include<stdio.h>
int main()
{
int i = 0;
while(i<=10)
{
if(5==i)
continue;
printf("%d ",i);
i++;
}
return 0;
}
如果我们换成while循环,那此时我们得到的结果就是1~4的死循环,原因就是因为当i = 5时,while循环中的continue会跳过后面的代码,直接进入判断,从而导致 i一直等于5,不断地判断,跳过,倒置死循环,而for循环中的continue是直接进入调整部分,使得i值会发生变化,杜绝死循环的发生。