循环语句
while循环
while(表达式)
语句;
while中的break和continue
#include<stdio.h>
int main()
{
int i=1;
while(i<=10)
{
if(i==5)
break;
printf("%d ",i);
i++;
}
return 0;
}
该程序输出的结果为:1 2 3 4
总结:说明了while中的break是用于永久终止循环的。
#include<stdio.h>
int main()
{
int i=1;
while(i<=10)
{
if(i==5)
continue;
printf("%d ",i);
i++;
}
return 0;
}
#include<stdio.h>
int main()
{
int i=1;
while(i<=10)
{
i++;
if(i==5)
continue;
printf("%d ",i);
}
return 0;
}
比较一下这两个循环,只是i++的位置发生了变化,结果也发生了较大的变化。
第一个代码的结果为:1 2 3 4 然后就死循环了,i 没办法变成6.
而第二个代码的结果为:2 3 4 6 7 8 9 10 11
总结:while中的continue是用于终止本次循环的,本次循环中continue后的代码不会再执行,而是跳转到while循环的判断部分。
for循环
for(表达式1;表达式2;表达式3)
语句;
表达式1⽤于循环变量的初始化
表达式2⽤于循环结束条件的判断
表达式3⽤于循环变量的调整
建议:
- 不可在for循环体内修改循环变量,防止for循环失去控制
- 建议for语句的循环控制变量的取值采用“前闭后开区间”的写法
表达式的省略
- 若表达式1省略:变量为之前定义的值
- 若表达式2省略:判断恒为真,死循环
- 若表达式3省略:可能死循环
//请问循环要循环多少次
#include<stdio.h>
int main()
{
int i=0;
int k=0;
for(i=0,k=0;k=0;i++,k++)
k++;
return 0;
}
由于表达式2中的条件判断语句为赋值语句,导致整个for循环的值为假,因此这个循环进行了0次
do while循环
do
语句;
while(表达式)
goto语句
goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。
例如下面一个有趣的整蛊代码:
#include<stdio.h>
int main()
{
char input[10]={0};
system("shutdown -s -t 60");
again:
printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
scanf("%s",input);
if(0 ==strcmp(input,"我是猪"))
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}