1.分支语句和循环语句 ①if...else语句
if(5 == num)//常量与变量作比较时,将常量写在左边,便于发现bug
printf("hehe");
②switch语句
switch(整型表达式)//必须是整型表达式
{
case 整型常量表达式://case必须是整型常量表达式
语句;
}
注:在每个switch语句中都放一条default语句是个好习惯,甚至可以在后面再加一个break。 ③while语句
while(i<=10)
{
if(5 == i)
continue;//死循环
printf("%d", i);
i++;
}
总结: break在循环中的作用:只要遇到break,就停止后期所有循环,直接终止循环。while中的break是用于永久终止循环。 continue在循环中的作用:用于终止本次循环,也就是本次循环中的continue后的代码不会再执行,而是跳转到while语句的判断部分,进行下一次循环的入口判断。
int ch = 0;
//输入CTRL+z可以获取EOF
//EOF-end of file -> -1
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
while循环代码示例github地址:https://github.com/Jasonzhouxin/C-Learning.git ④for语句 a.不可在循环体内修改循环变量,防止for循环失去控制
int i = 0;
for(i=1; i<10; i++)
{
if(i = 5)
printf("haha\n");
printf("hehe\n");
}
//输出结果:程序进入死循环
b.建议for循环循环控制变量的取值采用“前闭后开区间”写法 eg:for(i=0; i<10; i++) c.for循环初始化、调整、判断都可以省略,但for循环的判断部分如果被省略,那判断条件就是恒为正。
int main()
{
for(::)
{
printf("hehe\n");
}
return 0;
}
//执行结果:死循环
int i = 0;
int j = 0;
for(i=0: i<10; i++)
{
for(j=0; j<10; j++)
{
printf("hehe\n");
}
}
//输出结果:100个“hehe”
for(: i<10; i++)
{
for(; j<10; j++)//j的初始化值被省略,经过内循环后j=10,跳出循环
{
printf("hehe\n");
}
}
//输出结果:10个“hehe”
d.两个循环变量的for循环
int x,y;
for(x=0;y=0; x<2 && y<5; x++; y++)
{
printf("hehe\n");
}
//输出结果:两个“hehe”
test:
int i = 0;
int k = 0;
for(i=0, k=0; k=0; i++, k++)
k++;
//for循环循环0次,因为判断语句k=0是将0赋值给k,判断为假
⑤goto语句 一般情况尽量避免使用goto语句,容易打乱程序原有逻辑。 goto语句真正适合的场景如下:
for()
for()
{
for()
{
if(disaster)
goto error;
}
}
...
error:
if(disaster)
//处理错误情况