C语言当中的循环语句有 for() whlie() do…while() 三种。
while循环
while 循环,while 循环的括号里面放的是表达式,表达式判断为真,就继续循环,如果表达式判断为假,就跳出循环。在屏幕上打印1-10的数字:
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
这个while循环表达式的判断条件是 i<=10 当判断为假的时候,就跳出循环。每次循环打印之后,i 都会加1 。当 i 加到 11 的时候 就退出了 while 循环。
while循环当中的break和continue
while 循环当中,还有 break,和 continue 语句。break 的是跳出当前的循环,continue 是跳过 continue 下面的代码,然后返回去执行判断语句。
break
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
{
break;
}
printf("%d ", i);
i = i+1;
}
return 0;
}
这段代码的执行结果是:打印1 2 3 4。
因为在 while 循环当中,有了 if 判断语句,当 i 等于 5 的时候,执行 break 然后跳出循环。所以没有打印5。
continue
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
printf("%d ", i);
i = i+1;
}
return 0;
}
这段代码的输出结果是:只打印 1 2 3 4 ,然后程序就死循环了,就是下图这样。
因为当 i 等于5的时候,程序就执行 if 语句 然后就一直 continue ,而且 i 的值也不会变,因为并没有执行下面的 i = i + 1 所以就一直死循环。
int main()
{
int i = 0;
while (i < 10)
{
i = i + 1;
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
这段代码的输出结果就是:1 2 3 4 6 7 8 9 10 。 因为 i = i + 1 ,在 if 的continue 前面。所以只有当 i 等于 5 的时候,才会执行 continue 。
for循环
for(表达式1;表达式2;表达式3)
循环语句;
for 循环的表达式1是初始化语句,表达式2是判断语句,表达式3是调整语句。用 for 循环打印 1-10 数字。
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
这咯和 while 循环不一样的就是调整语句放在了最上面,所以就不需要在循环内部进行 i + 1 了。如果还要在循环内部调整的话,就会打乱循环的执行次数。
for循环的break
在 for 循环当中的 break 和 while 循环当中的一样,都会跳出当前循环。
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
代码的执行结果是:1 2 3 4
当 i 加到 5 的时候,执行 if 里面的 break 。所以跳过循环。
for里面的continue
for 循环里面的 continue 和 while 循环里面的 continue 用法一样,也是跳过执行 continue 下面的代码,去执行判断部分的代码。
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
代码的执行结果是:1 2 3 4 6 7 8 9 10 。因为当 i 等于 5 的时候,就执行 continue 语句,然后跳过打印 5 。
do while循环
do while 循环是至少执行一次,执行完一次后进行判断,当判断为真就继续执行,如果判断为假就跳出循环。
do
循环语句;
while(表达式);
因为不论如何都要执行一次,所以使用场景相对来说就少了一些,do while 循环里面的 break continue 也和 while 循环 for 循环里面的用法一样。
int main()
{
int a = 1;
int i = 0;
do
{
printf("%d\n", a);
i++;
} while (i < 10);
return 0;
}
这就是 while 循环的简单使用。实际使用来说,还是 for 循环 用的相对多。
go to 语句
go to 语句就是通过标记,跳到标记的位置。如下:
int main()
{
flag:
printf("haha\n");
goto flag;
return 0;
}
这里就是死循环打印 haha 因为 goto 语句跳到 flag 了,所以就一直死循环了。
当然,goto 语句的另外一个好处就是能一次性跳出好多个嵌套的循环,就不需要一直 break 了。