分支语句
1、 if语句
1.1、if语句的基本语法
//单分支语句 if(expression) statement; else statement;
//单分支语句
//多分支语句 if(expression) statement; else if statement; ....... ....... else statement;
//多分支语句
if后面的表达式为真执行,假则不执行 非0为真,0为假
1.2、else就近原则
int main() { int a=0; int b=2; if(a==1) if(b==2) printf("hehe\n"); else printf("haha\n"); return 0; }
该代码执行结果:不输出 因为else与就近的if配对,当第一个if中的的表达式为假,则不执行,直接到return 0 代码如下:
int main() { int a=0; int b=2; if(a==1) { if(b==2) printf("hehe\n"); else printf("haha\n"); } return 0; }
2、switch语句
2.1、switch的基本语法
switch(integer expression) { case integer constant expression: statement; case integer constant expression: statement; ...... ...... default: statement; }
举例说明:
#include <stdio.h> int main() { int day=0; switch(day) { case 1: printf("星期一\n"); case 2: printf("星期二\n"); case 3: printf("星期三\n"); case 4: printf("星期四\n"); case 5: printf("星期五\n"); case 6: printf("星期六\n"); default: printf("星期日\n"); } return 0; }
输出结果:
星期日
switch后面的整型常量表达式对应哪个case,就那个case开始执行下去,直到执行完switch里面内容。 若没有相应的case与switch后面的整型常量表达式相匹配,则执行default下面的语句。
2.2、switch语句注意事项
case后面可以为空语句,也可以依次执行: 输入:1-5 输出:周内 输入:6-7 输出:周末
#include <stdio.h> int main() { int day=0; scanf("%d",&day); switch(day) { case 1: case 2: case 3: case 4: case 5: printf("周内\n"); break; case 6: case 7: printf("周末\n"); break; } return 0; }
循环语句
1、for语句
1.1 for语句的基本语法
for(expression 1;expression 2;expression 3) statement;
expression 1为初始化部分; expression 2为判断条件; expression 3为变量调整部分。 for循环的的初始化部分,判断部分,调整部分均可以省略
for(; ;) { ; } //判断部分省略,则判断恒为真,所以这是一个死循环
1.2 for语句的break与continue
for中的break是终止整个for循环
for中的continue是跳出本次调整部分,来到下次调整部分
#include <stdio.h> int main() { int i=0; for(i=1;i<=10;i++) { if(i==5) break; printf("%d",i); } return 0; }
结果为:
#include <stdio.h> int main() { int i=0; for(i=1;i<=10;i++) { if(i==5) continue; printf("%d",i); } return 0; }
结果为:
2、while语句
2.1while语句的基本语法
while(expression) statement:
表达式为真执行语句;反之,不执行。
2.2 while语句的break与continue
while中的break终止整个循环,与for循环类似;
while中的continue终止本次循环,continue后面的部分不执行,进入while的判断的部分
int main()//while中的break { int i=0; while(i<=10) { if(i==5) break; printf("%d",i); i++; } return 0; }
结果为:
int main()//while中的break { int i=0; while(i<=10) { if(i==5) continue; printf("%d",i); i++; } return 0; }
结果为:
进入死循环,continue跳过后面调整部分
3、do while语句
3.1 do while语句的基本语法
do { statement; }while(expression);
do while与while类似,区别在于do while总是先执行一次,无论判断条件是否满足
4、 goto语句
4.1 goto语句的基本语法
goto lable; ...... ...... label:statment
lable可以是除C关键字以外的纯文本,可以设置在goto语句的前面或者后面
goto语句可以跳转同一函数中被标记的语句
int main() { int a = 0; again: do { if (a == 5) { goto again; } printf("a=%d\n", a); a++; } while (a <= 10); return 0; }
结果为:a=4后面进入死循环