C语言【控制语句】
一、分支控制语句
1、if语句略。
2、switch...case如下
- switch(表达式){
- case 常量1:
- // ...
- break;
- case 常量2:
- // ...
- break;
- defaule:
- // ...
- break;
- }
复制代码 注意: switch括号里的表达式只能存在整数计算或能表达整数的计算,不能出现浮点数的计算。
case的判断条件或的表示方法如下:- switch(xxx){
- case 1:
- case 2:
- case 3:
- // ...
- break;
- }
复制代码 注意: 如果case的代码里不加break; 则它会匹配到第一个满足条件的case后进入,然后无条件执行下面的语句,且对下面的case进行匹配,知道再次遇到break或switch执行结束。- int num = 0;
- /**
- 10 % 6 得到 4 , 匹配到case 4 后,执行num+=10,由于没有break,继续执行 num+=40
- */
- switch(10 % 6){
- case 2:
- num+=10;
- case 4:
- num+=20;
- case 6:
- num+=40;
- }
复制代码 二、循环控制语句
1、while循环。
基本语法略。
注意循环变量一定要在循环体中改变。
对于while循环,continue和break 如果写在循环变量之前,则循环变量不进行改变。(很正常对吧。)
2、do...while循环。
基本语法格式如下:- do{
- // ...
- } while(循环条件表达式);
复制代码 do...while是先执行一遍再走判断条件,其他参考while。
3、for循环。
基本语法格式略。
for循环括号里的三部分都可以省略,也可以只省略其中任意一项或两项。
for循环括号里的三部分每部分都可以写多个语句,用逗号隔开。
C89标准不允许把循环变量的声明放在for的括号里。for(int x = 0; ...; ...) 是不允许的;C99才有这个新特性。- for(;;){} // 随意省略。 这种表示即
- for(int x = 0, y = 0; x < 6, y > 5; x++, y--){} // x<6,y>5;括号里这个式子视为逗号表达式,只有当逗号后面的结果为1才为1,前面的也参与运算,但结果只取后面的
复制代码 对于for循环来说,break跳出循环后循环变量为跳出前的值;
对于for循环来说,continue有些不同,它会先goto到更新循环变量(如i++)的位置把循环变量更新(除非i++不是在for循环的括号里做的),之后再跳到循环判断。
4、goto语句。
基本语法格式如下。- int main(){
- loop_x: // 按照格式化,跳转的标识符比语句往前一个tab
- printf("来个跳转...\n");
- if(1){ // 无论如何都进入下面的跳转,成了死循环。
- goto loop_x;
- }
- }
复制代码 break只能跳出本层循环,goto可以跳到任何位置。
5、二重循环的应用,一种格式九九乘法表的实现。
两重嵌套循环时,利用好i和j的行和列的特性,能很好的解决问题。- 1*1=1
- 2*1=2 2*2=4
- 3*1=3 3*2=6 3*3=9
- 4*1=4 4*2=8 4*3=12 4*4=16
- 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
- 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
- 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
- 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
- 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
复制代码 [code]// 如上格式的乘法表实现代码为:for(int i = 1; i |