目录

  • 1 第一章 C语言简介
    • 1.1 C语言前世今生
    • 1.2 主流开发环境介绍
    • 1.3 第一个小程序解析
    • 1.4 常见编译错误
    • 1.5 章节知识点小结
  • 2 算法基础
    • 2.1 算法-程序的灵魂
    • 2.2 算法的描述-流程图
  • 3 数据类型与运算符
    • 3.1 数据描述
    • 3.2 运算符和表达式1
    • 3.3 运算符和表达式2
    • 3.4 章节知识点小结
  • 4 顺序结构程序设计
    • 4.1 输入和输出
    • 4.2 顺序结构程序设计
    • 4.3 章节知识点小结
  • 5 选择结构程序设计
    • 5.1 关系运算符和关系表达式
    • 5.2 逻辑运算符和逻辑表达式
    • 5.3 if语句
    • 5.4 条件运算符
    • 5.5 switch语句
    • 5.6 章节知识点小结
  • 6 循环结构程序设计
    • 6.1 while循环结构
    • 6.2 do_while循环结构
    • 6.3 for循环结构
    • 6.4 循环的嵌套
    • 6.5 break语句和continue语句
    • 6.6 章节知识点小结
  • 7 数组
    • 7.1 一维数组
    • 7.2 二维数组
    • 7.3 字符数组
    • 7.4 章节知识点小结
  • 8 函数
    • 8.1 子程序设计
    • 8.2 函数定义
    • 8.3 函数的调用
    • 8.4 局部变量和全局变量
    • 8.5 参数传递
    • 8.6 函数递归调用
    • 8.7 章节知识点小结
  • 9 指针
    • 9.1 指针的基本概念
    • 9.2 指针变量的定义及引用
    • 9.3 通过指针引用数组元素
    • 9.4 指向多维数组的指针和指针变量
    • 9.5 用指向数组的指针作函数参数
    • 9.6 指针与字符串
    • 9.7 函数指针和指针函数
    • 9.8 章节知识点小结
  • 10 用户自己建立数据类型
    • 10.1 定义和使用结构体变量
    • 10.2 使用结构体数组
    • 10.3 结构体指针
    • 10.4 章节知识点小结
  • 11 编译预处理
    • 11.1 宏定义预处理
    • 11.2 文件包含预处理
    • 11.3 条件编译预处理
    • 11.4 章节知识点小结
  • 12 文件
    • 12.1 文件的基本知识
    • 12.2 文件的基本操作
    • 12.3 章节知识点小结
switch语句



switch语句用来实现多分支选择结构

  • 学生成绩分类

85分以上为’A’级

70~84分为’B’级

60~69分为’C’级

……

  • 人口统计分类

    按年龄分为老、中、青、少、儿童

switch语句的作用是根据表达式的值,使流程跳转到不同的语句。

switch语句的一般形式:


Switch语句的执行过程:

先计算表达式的值,然后依次与常量表达式i(i=1,2,……n)的值比较,若表达式的值与某个case语句后的表达式i的值相等,则先执行语句i,再依次执行语句i+1,i+2,……语句n+1。若所有case后的常量表达式的值均不与switch后的表达式的值相等,则执行default后语句。


其中case后面的常量表达式不能相同。

例题1:按照成绩的等级输出百分制分数段,A级为85分以上,B级为70~84分,C级为60~69分 ,D级为 60分以下 。成绩的等级由键盘输入。

解题思路:

多分支选择结构

将学生成绩分为4个等级

用switch语句实现

include <stdio.h>

 int main()

{ char grade;

   scanf("%c",&grade);

   printf("Your score:");

   switch(grade)

  { case 'A': printf("85~100\n");

     case 'B': printf("70~84\n"); 

     case 'C': printf("60~69\n"); 

     case 'D': printf("<60\n");

 default:  printf("enter data error!\n");

   }

  return 0;

}

此程序若输入B,将输出B之后的4条语句。

若想在执行某一分支后跳出switch语句,即终止switch语句的执行,可在每个case语句的后面加上一个break语句来达到此目的。

将上例改成如下形式:

#include <stdio.h>

 int main()

{ char grade;

   scanf("%c",&grade);

   printf("Your score:");

   switch(grade)

  { case 'A': printf("85~100\n");break;

     case 'B': printf("70~84\n");break;

     case 'C': printf("60~69\n");break;

     case 'D': printf("<60\n");break;    

 default:  printf("enter data error!\n");

   }

  return 0;

}

修改后的程序,若输入B,将输出B之后的一条语句。

多个case子句可共用同一组执行语句.

#include<stdio.h>

int main()

{ int i;

  scanf("%d",&i);

  switch(i)

  {case 1:   case 2:printf("i=");

   case 3:   printf("%d\n",i);break;

   default:  printf("ok!\n");}

  return 0;

}

思考:运行以上程序4次,分别输入1、2、3、5,观察程序的输出结果。