while循环
语法结构:
while(表达式)
循环语句;
表达式和if语句的要求一样,在while循环中为判断条件,如果为真就继续执行下面的语句然后继续判断,直到判断条件不成立才终止循环。
所以在循环语句中必须要有可以跳出循环的条件,否则就会成为死循环,这个代码将无穷无尽跑下去。
错误示范:
#include<stdio.h> int main () { while(1) printf("hello\n"); return 0; }
这个“hello”会一直打印下去,直到你电脑崩溃为止。
for循环
在while循环中,初始化一般在循环外面,调整变量一般在循环里面,非常的凌乱,很容易造成死循环。为了方便,c语言推出了一种可读性更好的循环——for
语法结构:
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量的。
表达式2是条件判断部分,用于循环判断终止。
表达式3是调整部分,用于循环条件的调整。
举个例子:
#include<stdio.h> int main(void) { int a = 0; for(a = 1; a <= 5; a++) printf("%d\n", a); return 0; }
这个就是for循环的基本用法。
我们在for循环三条表达式中可以使用空语句for( ; ; ),这样就会造成死循环。初始化和调整省略就是什么都不做,而判断语句的省略就表示恒为真。
for循环也可以进行嵌套,并且三条语句可以不止一个条件,可以大于等于1。
do while循环
do while循环和其他两个循环有所不同,其他两个循环都是先判断条件是否成立在进行循环,而do while循环是先循环在进行判断。所以for和while循环可以一次都不执行,但do while循环至少会执行一次循环。
语法结构:
do
循环语句;
while(表达式);
所以在不同的问题下可以选择不同的循环方式,可以简化代码。
go to语句
C语言中提供了可以随意滥用的goto语句和跳转的标号。随意使用goto语句会造成代码的可读性非常差,所以一般情况下是不用goto语句的。但是在某些情况下goto语句却非常好用,比如在一个多层嵌套的循环语句中,如果想要跳出循环,用break会非常的麻烦,因为break一次只能跳出一个循环体,在这种情况下,使用goto语句会非常的轻松便捷。
语法结构:
标记名称:
代码
goto 标记名称;
当程序走到goto时,会找到被标记的地方继续运行。
break 和 continue
break和continue都是转向语句,在循环中都有着不同的作用。
break:可以跳出当前的循环,无论循环有无结束。
continue:终止本次循环,直接跳转到下一次循环当中。(在for循环中不会执行判断部分但是会执行调整部分)