C语言 - 流程控制语句

流程控制结构

1 - 顺序结构:按书写顺序执行每一条语句

2 - 选择结构:对给定的条件进行判断,根据判断结果决定执行哪一段代码

3 - 循环结构:在给定条件成立的情况下,反复执行某一段代码

选择结构

1 - if 语句:如果要在 if 后面定义新的变量,则一定要使用大括号,如

1     if(10 > 6){
2         int a;// a 的作用域在代码块结束后失效
3     }
4     printf("2 = %d",a);// 报错,出了 if 作用域是找不到标识符 a 的
1     if(10>6)
2         int a;
3     printf("a=%d",a);// 报错,同样是找不到标识符

2 - 用户输入分数,根据分数打印出等级(A-E),等级标准:A90-100  B80-89  C70-79  D60-69  E0-60

 1     int score = 0;
 2     printf("请输入分值:\n");
 3     scanf("%d",&score); 4
 4     // 判断等级
 5     if(score>=90&&score<=100)
 6         
 7         printf("A\n");
 8     else if(score>=80)
 9         
10         printf("B\n");
11     else if(score>=70)
12         
13         printf("C\n");
14     else if(score>=60)
15         
16         printf("D\n");
17     else
18         printf("E\n");

2 - switch 语句

① 该结构把数值与数值 1 进行比较,若相等则执行后面的所有语句,直到 break 语句跳出整个循环;若前面的条件都不满足则最终会执行 default 后面的语句。如果不写 break 语句则后面的语句会接连执行,直到 break 语句或者是全部语句执行完毕。只要前面的条件成立则后面的判断就直接被忽略,不再往下执行

② 错误使用

 1     char c = 'A';
 2     switch(c){
 3         case 'A':
 4             printf("This is A");
 5             break;
 6         case 65:// 报错:A 的 ASCII 值是 65
 7             printf("This is A");
 8             break;
 9         case 3:
10             int a = 199;// 报错:a 的作用域不明确。C 语言检查变量的作用域根据 {} 决定
11             printf("a = %d",a);
12             break;
13         default:
14             printf("switch end");
15             break;
16     }

注:在 case 后面的语句中定义变量则必须使用大括号

1   case 3:{
2       int a = 199;
3       printf("a = %d",a);
4       break;
5   }

3 - 输入分数,根据分数输出等级(A-E),等级标准:A90-100  B80-89  C70-79  D60-69  E0-60

 1     int score;
 2     printf("请输入分值:\n");
 3     scanf("%d",&score);
 4     switch(score/10){
 5             
 6         case 10:
 7             break;
 8         case 9:
 9             printf("A\n");
10             break;
11         case 8:
12             printf("B\n");
13             break;
14             
15         case 7:
16             printf("C\n");
17             break;
18             
19         case 6:
20             printf("D\n");
21             break;
22             
23         default:
24             printf("E\n");
25             break;
26     }

4 - if 与 switch:if 语句能够完成的功能,switch 有时并不能够完成,在有些情况下,if 语句和 switch 语句可以互换。switch 语句能完成的功能,if 语句都可以完成

循环结构

1 - while 循环语句:可以在 while 循环体内使用 if...break(跳出整个循环)或 if...continue 语句(跳出本次循环)

2 - 代码示例:输入一个正整数 n,计算 1+2+3+...n 的值

 1     int n = 0;
 2     while(n <=0 ){
 3         
 4         printf("请输入一个正整数:\n");
 5         scanf("%d",&n);
 6     }
 7     
 8     int sum = 0;
 9     int number = 0;
10     
11     while(number < n){
12         
13         number++;
14         sum = sum + number;
15         
16     }
17     printf("计算结果为:%d\n",sum);

2 - do...while 循环语句:至少会执行一次循环体

3 - for 循环语句

① for 循环中语句 1、条件、语句 2 都是任选项,都可以省略(如果都省略掉的话就意味着陷入无限循环)

② for 和 while:在性能上 for 循环稍胜一筹,因为 while 循环只能使用外部的变量,而 for 循环可以对变量进行及时回收。while 能实现的,for 都可以实现

③ 代码示例:使用 for 循环输出九九乘法表

for(int i = 1;i <= 9;i++){
    for(int j = 1;j <=i ;j++){
        printf("%dx%d=%d\t\t",i,j,i*j);
    }
    printf("\n");
}

日志信息

 

 

posted on 2017-08-02 12:05  低头捡石頭  阅读(46)  评论(0编辑  收藏  举报

导航