C语言流程控制语句
1、顺序控制
2、分支控制
1> if-else分支结构
a、单分支:
if(条件表达式){
执行代码块;
}
b、双分支:
if(条件表达式){
执行代码块1;
}else{
执行代码块2;
}
c、多分支:
if(条件表达式1){
执行代码块1;
}else if{
执行代码块2;
}
、、、、
else{
执行代码块n;
}
2> switch分支结构
switch(表达式){
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
、、、、、
case 值n:
语句块n;
break;
default:
default语句块;
break;(可省略)
}
注意:
a、switch语句的表达式结果必须是char,short,int,long和枚举类型;
b、case子句的值必须是常量不能是变量;
c、default子句是可选的,只是没有匹配case时执行default;
d、break语句用于结束整个switch语句块,如果没有写break,则会执行下一个case语句块,直到遇到break或者执行到switch结尾;
3、循环控制
1> while循环
循环变量初始化;
while(循环条件){
循环体;
循环变量迭代;
}
2> do while循环
循环变量初始化;
do{
循环体;
循环变量迭代;
}while(循环条件);
注意:
do while与while的对比:
while先判断后执行,do while先执行后判断;
如果循环条件不成立,while将不会执行,do while将会执行一次;
3> for循环
循环变量定义;
for(循环变量初始化;循环条件;循环条件迭代){
循环体;
}
4> 嵌套循环
将一个循环放入另一个循环体内就形成了嵌套循环,外面的循环叫外层循环,里面的循环叫内层循环;
嵌套循环就是内层循环当外层循环的循环体,外层循环循环一次,内层循环就要循环完整一次;
for 、while 、do while 循环均可作内外层循环;
练习:
1)九九乘法表
#include<stdio.h>
void main() {
int i;
int j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
printf("%d*%d=%d\t", j, i, i * j);
}
printf("\n");
}
2)打印图形:
#include<stdio.h>
void main() {
int i;
int j;
int k;
//图1
printf("\n图1如下图:\n");
for (i = 1; i <= 4; i++) {
for (j = 1; j <= i; j++) {
printf("*\t");
}
printf("\n");
}
//图2
printf("\n图2如下图:\n");
for (i = 1; i <= 4; i++) {
for (j = 1; j <= 4-i+1; j++) {
printf("*\t");
}
printf("\n");
}
//图3
printf("\n图3如下图:\n");
for (i = 1; i <= 4; i++) {
for(k = 1; k <= 4 - i; k++){
printf(" ");
}
for (j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
//图4
printf("\n图4如下图:\n");
for (i = 1; i <= 4; i++) {
for (j = 1; j <= i-1; j++) {
printf(" ");
}
for (k = 1; k <= 4-i+1 ; k++) {
printf("* ");
}
printf("\n");
}
//图5
printf("\n图5如下图:\n");
for (i = 1; i <= 7; i++) {
if ((7 - i) % 2 == 0) {
for (j = 1; j <= (7 - i) / 2; j++) {
printf(" ");
}
for (k = 1; k <= i; k++) {
printf("*");
}
}
printf("\n");
}
//图6
printf("\n图6如下图:\n");
for (i = 1; i <= 7; i++) {
if ((7 - i) % 2 == 0) {
for (j = 1; j <= (i - 1)/2; j++) {
printf(" ");
}
for (k = 1; k <= 7 - i + 1; k++) {
printf("*");
}
}
printf("\n");
}
}
4、跳转控制
1> break
用于终止switch语句和循环语句;
2> countinue
只能用在循环;
用于结束本次循环,直接执行下次循环;