C语言Switch分支语句yjh
c语言中switch使用方法
![c语言中switch使用方法](https://img.taocdn.com/s3/m/4713131fdc36a32d7375a417866fb84ae45cc3ba.png)
c语言中switch使用方法C语言中的switch语句是一种用于多分支选择的控制语句,它可以根据变量的不同值,执行相应的代码块。
本文将详细介绍switch语句的使用方法。
1. 语法结构switch语句的基本语法结构如下:```switch (表达式) {case 值1:代码块1;break;case 值2:代码块2;break;...default:默认代码块;}```其中,表达式的值将与各个case后的值进行比较,如果匹配成功,则执行相应的代码块。
如果没有任何匹配项,将执行default后的代码块。
2. 值的类型在switch语句中,表达式的类型可以是整型、字符型、枚举型或者指向枚举类型的指针。
每个case后的值也必须是与表达式类型相同的常量表达式。
3. 执行流程当程序执行到switch语句时,首先计算表达式的值。
然后,依次与各个case后的值进行比较,如果找到匹配项,则执行相应的代码块。
在执行完代码块后,使用break语句跳出switch语句,防止继续执行其他case后的代码块。
如果没有找到匹配项,则执行default 后的代码块。
4. 注意事项- 在case后的值必须是常量,不能是变量或表达式。
- 每个case后的代码块可以包含多条语句,但需要用花括号括起来。
- 如果在某个case后没有使用break语句,程序将会继续执行后面的case代码块,直到遇到break或switch语句结束。
- default后的代码块是可选的,如果没有匹配项,将执行default 后的代码块。
- switch语句可以嵌套,即在case后的代码块中继续使用switch 语句。
下面通过一个简单的例子来说明switch语句的使用方法:```c#include <stdio.h>int main() {int num;printf("请输入一个数字:");scanf("%d", &num);switch (num) {case 1:printf("你输入的是1\n");break;case 2:printf("你输入的是2\n");break;case 3:printf("你输入的是3\n");break;default:printf("你输入的不是1、2、3\n");}return 0;}```在上述代码中,先通过scanf函数获取用户输入的数字,并将其赋值给变量num。
c语言中switch的用法
![c语言中switch的用法](https://img.taocdn.com/s3/m/eca63d02a66e58fafab069dc5022aaea998f412b.png)
c语言中switch的用法c语言中switch的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中switch的用法的用法,希望对你们有用。
c语言中switch的用法的用法如下:C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n: 语句n;default: 语句n+1;}其语义是:计算表达式的值。
并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
【例4-9】01.#include <stdio.h>02.int main(void){03. int a;04. printf("input integer number: ");05. scanf("%d",&a);06. switch (a){07. case 1:printf("Monday\n");08. case 2:printf("Tuesday\n");09. case 3:printf("Wednesday\n");10. case 4:printf("Thursday\n");11. case 5:printf("Friday\n");12. case 6:printf("Saturday\n");13. case 7:printf("Sunday\n");14. default:printf("error\n");15. }16. return 0;17.}本程序是要求输入一个数字,输出一个英文单词。
精品-清华大学C语言课件 第7章03 switch语句
![精品-清华大学C语言课件 第7章03 switch语句](https://img.taocdn.com/s3/m/282598d4312b3169a551a47a.png)
运行程序,显示效果如图7.17所示。
图7.17 使用switch语句输出分数段 本程序使用switch语句判断字符变量cGrade,其中使用case关键字检验可能出现的级别情况。并 且在每一个case语句的最后都会有break进行跳出。如果没有符合的情况则会执行default默认语句。 注意: 在case语句表示的条件后有一个冒号“:”,在编写时不要忘记。
运行程序,显示效果如图7.19所示。
图7.19 使用多路开关模式编写日程安排程序 程序中使用多路开关模式,使得检测iDay的值为2、3、4、5这四种情况时,都会执行相同的结果。 并且利用default语句将不符合的数字显示提示信息表示输入错误。
switch (表达式) { case 情况1: 语句块1; case 情况2: 语句块2; … case 情况n: 语句块n; default: 默认情况语句块; }
其语句的程序流程如下图7.15所示。
图7.15 switch多分支选择语句流程
通过上面的流程图进行分析switch语句的一般形式。switch后面括号中的表达式就是要进行判断的条 件。在switch的语句块中,使用case关键字表示检验条件符合的各种情况,其后的语句是相应的操作。 其中还有一个default关键字,代表的作用是如果上面没有符合条件的情况,那么执行default后的默认情 况语句。
在实例7.9中,将break去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设 计多路开关模式的switch语句。其形式如下。
switch(表达式) { case 1: 语句1 break; case 2: case 3: 语句2 break; …… default: 默认语句 break; }
3.10C++ switch语句(多选分支结构)
![3.10C++ switch语句(多选分支结构)](https://img.taocdn.com/s3/m/2784899ca0116c175f0e486a.png)
switch语句是多分支选择语句,用来实现多分支选择结构。
它的一般形式如下:switch(表达式){case 常量表达式1:语句1case 常量表达式2:语句2...case 常量表达式n:语句ndefault:语句n+1}例如,要求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现:.switch(grade).{.case 'A': cout<<"85~100\n";.case 'B': cout<<"70~84\n";.case 'C': cout<<"60~69\n";.case 'D': cout<<"<60\n";.default: cout<<"error\n";.}说明:1) switch后面括号内的“表达式”,允许为任何类型。
2) 当switch表达式的值与某一个case子句中的常量表达式的值相匹配时,就执行此case子句中的内嵌语句,若所有的case子句中的常量表达式的值都不能与switch表达式的值匹配,就执行default子句的内嵌语句。
3) 每一个case表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。
4) 各个case和default的出现次序不影响执行结果。
例如,可以先出现“default:…”,再出现“case 'D':…”,然后是“case 'A':…”。
5) 执行完一个case子句后,流程控制转移到下一个case子句继续执行。
“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。
在执行switch语句时,根据switch表达式的值找到与之匹配的case子句,就从此case子句开始执行下去,不再进行判断。
C语言switch语句
![C语言switch语句](https://img.taocdn.com/s3/m/1cc5be42c381e53a580216fc700abb68a982ada5.png)
input 10 characters: Reold 123? blank=1, digit=3, other=6
blank ++;
break;
case '0' : case '1' : case '2' : case '3‘:
case '4' : case '5' : case '6' : case '7' :
假(0) 表达式=常量表达式n?
假(0)
无break语句
有break语句
真(非0)
语句序列2
break
无break语句
真(非0)
有break语句
语句序列n
break
无break语句 语句序列n+1
说明:
04:06:15
switch语句不等同于if语句:
只进行值的相等性 的检查,不是逻辑判断!
1. switch只能进行值的相等性的检查. 2. if语句不但可以进行相等性的检查, 还可以计算关 系表达式或逻辑表达式,进行逻辑判断的真假.
printf("十进制数: %d\n", ch-'0');
break;
04:06:16
ASCII值: ‘0’ 48 ‘A’ 65 ‘a” 97
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': printf("十进制数: %d\n", ch-55);
C语言switch语句讲课教案_2022年学习资料
![C语言switch语句讲课教案_2022年学习资料](https://img.taocdn.com/s3/m/08794d64b207e87101f69e3143323968011cf42b.png)
switch表达式-case常量表达式l:-语句1-4.各个case语句只是一-[break];-个入口标 ,并不确定执行-case常量表达式2:-的终止点.-语句2-S.一般在各个case语句最后应-该加一bre k语句,可使程序流程-跳出Switch结构.-常量表达式n:-否则会从入口处一直向下执行.-语句n-[de ault:-6.各个case和default-语句n+1]-出现的先后次序,并不影响执-行结果.-defa lt可以没有.-:39
例7.3执行下列程序,当分别输入A、B、C、E时,求K的值-char c;int k=2;-scanf%c ,&c;-回D:语言课件_(唐.09年9月【.„-□X-switch c-'A'-k=5-Press an key to continue-case 0:k++;-case 1:K+=2;break;-defau t:k *k;-回D:C语言课件_唐_09年9月.„□X-case 4:k *=3;-k=12-print k=%d”,k;-Ch7 7 3.c
例7.4输入一字符,如果是Y,N或y,n,则分别执行-输出语句,如果是其他字母则执行另一输出语句。-回“D c语言课件_唐.眸月I1ch.„曰X-Please input Y/N y/n:Y-#include <s dio.h>-this is 'Y'or 'y'.-yoid main-Press any key to ontinue-char ch;-printf"Please input Y/N y/n:"-scanf" c",&ch;-Ch7 7 4.c-21:49:39
c语言中switch的用法
![c语言中switch的用法](https://img.taocdn.com/s3/m/e97192cc172ded630b1cb6d8.png)
c语言中switch的用法c语言中switch的用法的用法你知道吗?下面就跟你们详细介绍下c语言中switch的用法的用法,希望对你们有用。
c语言中switch的用法的用法如下:C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n: 语句n;default: 语句n+1;}其语义是:计算表达式的值。
并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
如表达式的值与所有case后的常量表达式均不相同时,则执行default 后的语句。
【例4-9】01.#include <stdio.h>02.int main(void){03.int a;04.printf("input integer number:");05.scanf("%d",&a);06.switch (a){07.case 1:printf("Monday\n");08.case 2:printf("Tuesday\n");09.case 3:printf("Wednesday\n");10.case 4:printf("Thursday\n");11.case 5:printf("Friday\n");12.case 6:printf("Saturday\n");13.case 7:printf("Sunday\n");14.default:printf("error\n");15.}16.return 0;17.}本程序是要求输入一个数字,输出一个英文单词。
switch语句用法c语言
![switch语句用法c语言](https://img.taocdn.com/s3/m/130a447db207e87101f69e3143323968011cf435.png)
C语言中switch语句的用法总结一、switch语句的基本概念switch语句是一种多分支选择语句,它可以根据一个表达式的值,选择执行不同的代码块。
switch语句的一般形式如下:switch (expression) {case constant-expression1 :statement(s);break; /* 可选的 */case constant-expression2 :statement(s);break; /* 可选的 *//* 您可以有任意数量的 case 语句 */default:/* 可选的 */statement(s);}其中,expression是一个整型或枚举类型的表达式,它的值会与每个case后面的常量表达式进行比较,如果相等,则执行该case后面的语句,直到遇到break语句或switch语句结束为止。
如果没有任何一个case匹配,则执行default后面的语句,如果没有default,则不执行任何语句。
二、switch语句的使用规则在使用switch语句时,需要注意以下几个规则:switch语句中的expression必须是一个整型或枚举类型的表达式,不能是浮点型、字符串型或布尔型。
case后面的constant-expression必须是一个常量或字面量,不能是变量或表达式,且必须与expression具有相同的数据类型。
case后面的常量表达式不能重复,否则会导致编译错误。
case和default只起标号的作用,它们本身不控制程序流程,只有break语句才能跳出switch语句。
不是每一个case都需要包含break语句,如果没有break语句,则程序会继续执行后续的case,直到遇到break为止,这称为case穿透现象。
default可以省略,也可以放在任何位置,但建议放在最后,以便处理其他情况。
三、switch语句的优缺点switch语句相比于if-else语句,有以下几个优点:switch语句结构清晰,易于阅读和理解。
c语言 switch语句的用法
![c语言 switch语句的用法](https://img.taocdn.com/s3/m/245f04bb05a1b0717fd5360cba1aa81144318fa8.png)
C语言中switch语句的用法一、概述C语言中的switch语句是一种多分支选择结构,它可以根据不同的情况执行不同的代码块。
switch语句通常用于替代多个if-else语句,使程序更加清晰和简洁。
二、基本语法switch语句的基本语法格式如下:```switch (表达式){case 值1:语句序列1;break;case 值2:语句序列2;break;...default:默认语句序列;}```其中,表达式是一个常量表达式,值1、值2等为case标签,可以是整数、字符或枚举类型的常量。
三、执行流程在执行switch语句时,程序会先计算表达式的值,然后与每个case 标签的值进行比较,如果找到值相等的case标签,就会执行相应的语句序列,并且遇到break时跳出switch语句;如果没有找到匹配的case标签,则执行default语句序列。
若没有default标签,程序将跳过switch语句继续执行下面的代码。
四、示例下面是一个简单的示例,展示了switch语句的用法:```c#include <stdio.h>int m本人n(){int day = 3;switch (day){case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;default:printf("Other\n");}return 0;}```上面的示例中,根据变量day的值执行不同的代码块,输出星期三。
五、注意事项1. case标签的值必须是一个常量表达式,不能是变量或表达式。
2. 每个case标签后面的语句序列都需要跟上break语句,否则会继续执行下一个case标签的语句序列。
3. default标签是可选的,用于处理除case标签外的其他情况。
c语言switch的用法
![c语言switch的用法](https://img.taocdn.com/s3/m/9c54cf486edb6f1aff001fc4.png)
c语言switch的用法switch 是一个开关语句,和case配套使用,和if else 判断语句差不多,switch 语句是用于多分支语句进行条件判断下面小编就来为大家介绍一下c语言switch的用法。
用于多分支选择的switch 语句,其一般形式为:switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; case 常量表达式n: 语句n; default: 语句n+1; } 其语义是:计算表达式的值。
并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
【例4-9】#include stdio.h int main(void){ int a; printf(input integer number: );scanf(%d,switch (a){case 1:printf(Monday\n);case 2:printf(Tuesday\n);case 3:printf(Wednesday\n); case 4:printf(Thursday\n); case 5:printf(Friday\n);case 6:printf(Saturday\n);case 7:printf(Sunday\n); default:printf(error\n); } return 0; } 本程序是要求输入一个数字,输出一个英文单词。
但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。
这当然是不希望的。
为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。
在switch语句中,case 常量表达式只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。
switch在c语言中的用法
![switch在c语言中的用法](https://img.taocdn.com/s3/m/f65fce316d85ec3a87c24028915f804d2b1687fa.png)
switch在c语言中的用法一、概述在C语言中,switch是一个用来进行条件分支的控制流语句,用于根据某个表达式的值来选择不同的执行路径。
使用switch语句可以简化多个if...else语句的编写,使代码更加简洁和易读。
二、switch语句的语法结构switch语句的基本语法如下:switch(expression){case constant:// 执行语句块1break;case constant:// 执行语句块2break;...default:// 执行默认语句块break;}其中,expression是一个表达式,constant是常量或常量表达式。
case后面的常量值与expression的值进行比较,如果相等,则执行对应case后面的语句块。
如果没有任何case与expression的值相等,则执行default后面的语句块(可选)。
三、switch语句的执行流程当switch语句执行时,会首先计算expression的值,然后依次与后面的case的常量值进行比较。
如果有匹配的常量值,则执行对应的语句块,并在语句块结尾处遇到break语句时跳出switch语句块,继续执行switch语句之后的代码。
如果没有匹配的常量值,则执行default语句块(如果有),再跳出switch语句块。
四、switch语句的特性与注意事项1. case语句必须是常量case后面的常量值必须是编译时确定的常量,不能是变量或表达式。
2. switch表达式的类型expression的类型可以是整数类型(int、char等)、字符类型(char)或枚举类型,但不能是浮点类型(float、double)。
3. 可以省略break语句在每个case语句块的结尾可以加上break语句用于跳出switch语句,如果省略break语句,则会继续执行下一个case语句块。
这种情况下,多个case语句块会被连续执行,直到遇到break语句或switch语句结束。
C语言switch语句的用法详解
![C语言switch语句的用法详解](https://img.taocdn.com/s3/m/96609f8ae2bd960591c67731.png)
C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n: 语句n;default: 语句n+1;}其语义是:计算表达式的值。
并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
【例4-9】1.#include <stdio.h>2.int main(void){3.int a;4.printf("input integer number: ");5.scanf("%d",&a);6.switch (a){7.case 1:printf("Monday\n");8.case 2:printf("Tuesday\n");9.case 3:printf("Wednesday\n");10.case 4:printf("Thursday\n");11.case 5:printf("Friday\n");12.case 6:printf("Saturday\n");13.case 7:printf("Sunday\n");14.default:printf("error\n");15.}16.return 0;17.}本程序是要求输入一个数字,输出一个英文单词。
但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。
这当然是不希望的。
为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。
C语言switch语句实例
![C语言switch语句实例](https://img.taocdn.com/s3/m/0d1f7ba51b37f111f18583d049649b6648d709de.png)
C语言switch语句实例C语言switch语句实例引导语:switch 语句用于基于不同的条件来执行不同的动作。
以下是店铺分享给大家的C语言switch语句实例,欢迎阅读学习!C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n:语句n;default: 语句n+1;}其语义是:计算表达式的值。
并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
如表达式的'值与所有case后的常量表达式均不相同时,则执行default后的语句。
【例1】#includeint main(void){int a;printf("input integer number: ");scanf("%d",&a);switch (a){case 1:printf("Monday\n");case 2:printf("Tuesday\n");case 3:printf("Wednesday\n");case 4:printf("Thursday\n");case 5:printf("Friday\n");case 6:printf("Saturday\n");case 7:printf("Sunday\n");default:printf("error\n");}return 0;}本程序是要求输入一个数字,输出一个英文单词。
但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。
第三讲 分支结构(switch)
![第三讲 分支结构(switch)](https://img.taocdn.com/s3/m/af7be227dd36a32d737581cf.png)
空格字符和“转义字符”都作为有效字符输入。 空格字符和“转义字符”都作为有效字符输入。
字符间没有空格) 如:abc ↙ (字符间没有空格) 若在两个字符间插入空格就不对了。 若在两个字符间插入空格就不对了。 如:a b c↙ (字符间有空格) ↙ 字符间有空格)
注意数值型数据与char型数据的混合输入 注意数值型数据与char型数据的混合输入
基本数据类型
——2.7.1 数组(存储方式) ——2.7.1 数组(存储方式)
int
a[0] a[1] a[2] a[3] a[4] arr[1][0] arr[1][1] arr[1][2] arr[0][0] arr[0][1] arr[0][2]
按行存储 a[5]; int arr[2][3];
scanf ("%d%d", &m, &n); scanf ("%c", &ch); 错误输入: 正确输入: 错误输入: 正确输入: 32 28 32 28a a
第3章 结构化程序设计
——3.1.2 数据输入
使用scanf函数应注意: 函数应注意: 使用 函数应注意
double型数据输入时,必须用%lf或%le格式 型数据输入时,必须用 或 格式 型数据输入时 为了减少不必要的输入量, 为了减少不必要的输入量,格式控制中尽量不要出现 普通字符, 普通字符,也不要使用 '\n' 、'\t' 等转义字符 输入数据不能规定精度 scanf (" %7.2f ", &a);是错误的 &a);是错误的 指定数据长度时,系统自动截取。 指定数据长度时,系统自动截取。 scanf(" %3d%3d ", &a, &b); 则当输入123456时 b← 则当输入123456时, a←123, b←456
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺点: 缺点 if 与 else 的配对容易混淆
表达式1
真
假
表达式2
真
表达式3 语句1 语句2 语句3
语句4
2.1 Switch 多分支结构
switch(表达式 表达式) 表达式 { case 常量 常量1: 语句块1; 语句块 break; case 常量 常量2: 语句块2; 语句块 break; ……………. case 常量 常量n: 语句块n; 语句块 break; default: 语句块n+1; 语句块 }
C语言分支结构 语言分支结构-switch 语言分支结构
杨俊华
学习目标与课程安排 目标:理解掌握C语言switch分支结构。 目标:理解掌握C语言switch分支结构。 switch分支结构 课程安排 – 背景知识回顾 – switch分支结构介绍 switch分支结构介绍 – 注意事项 – 实例讲解 – 典型错误 – 总结
关键字:switch
关键字:case
关键字:break
关键字:default
2.2 执行过程
计算表达式的值,判断与case后哪个常量相等。 case后哪个常量相等 1) 计算表达式的值,判断与case后哪个常量相等。 若与常量i的值相等,则从语句块i开始执行, 2) 若与常量i的值相等,则从语句块i开始执行, 直到遇到第一条break语句结束, break语句结束 直到遇到第一条break语句结束,或执行完语句 n+1结束 结束。 块n+1结束。 若与任何一个常量的值都不相等, 3) 若与任何一个常量的值都不相等,直接执行语 句块n+1 n+1。 句块n+1。
第八、各个case和default的出现次序不影响执行结果。 第八、各个case和default的出现次序不影响执行结果。但建议遵循 case 的出现次序不影响执行结果 以下准则: 以下准则: 按字母或数字顺序排列各条case a) 按字母或数字顺序排列各条case 语句 把正常情况放在前面, b) 把正常情况放在前面,而把异常情况放在后面 c) 按执行频率排列case语句 按执行频率排列case case语句
4.典型错误 4.典型错误
千万不要遗漏必要的break! 千万不要遗漏必要的break! break 如:
switch(score){ case 5: printf(“very good ”); case 4: printf(“good ”); case 3: printf(“pass ”); case 2: printf(“fail ”); default: printf(“error”); }
Score 90 ~100 70 ~89 60~69 60~0 Score/10 10,9 7,8 6 5,4,3,2,1,0
程序
#include <stdio.h> main( ) { int score; scanf("%d" ,&score); 不同情况执行相同的操作 switch (score /10) { case 10: case 9: printf("%d: A\n", score);break; case 8: case 7: printf("%d: B\n", score);break; case 6: printf("%d: C\n", score);break; default: printf("%d: D\n", score); } }
1.1 if语句回顾 if语句回顾
(表达式 表达式) 1.if (表达式) (表达式 表达式) 2.if (表达式) else
语句 语句1 语句1 语句2 语句2
3.if(表达式1 语句1 3.if(表达式1)语句1 if(表达式 表达式2) 语句2 else if(表达式2) 语句2 if(表达式 表达式3) 语句3 else if(表达式3) 语句3 …… if(表达式 表达式m) 语句m else if(表达式m) 语句m 语句n else 语句n
当输入5 当输入5时,将输出: 将输出:
very good good pass fail error
5 注意事项
后跟整形, Switch 后跟整形, Case后面接常量, Case后面接常量, 后面接常量 Default是可选项, Default是可选项, 是可选项 常量值须互不同。 常量值须互不同。 只能判断值相等, 只能判断值相等, 遇到break才中断。 遇到break才中断。 break才中断 Break常常很必要, Break常常很必要, 常常很必要 冒号小心别漏掉。 冒号小心别漏掉。
第三、遇到break才中断,Break常常很必要。 第三、遇到break才中断,Break常常很必要。 break才中断 常常很必要 使得程序在执行完选中的分支后,可以跳出整个switch break 使得程序在执行完选中的分支后,可以跳出整个switch 语句;如果没有这个break,程序将在继续前进到下一分支, 语句;如果没有这个break,程序将在继续前进到下一分支,直到遇到 break,程序将在继续前进到下一分支 后面的break或者switch完成。 后面的break或者switch完成。 break或者swi接常量。 第二、 Case后面接常量。 之后可以是直接的常量数值,如例中的1 case 之后可以是直接的常量数值,如例中的1、2、3、4,也 可以是一个使用常量计算式, +2等 可以是一个使用常量计算式,如2+2等,但不能是变量或带有变量的 表达式, 2等 不能是实型数, 4.1, 2。 表达式,如 a * 2等。不能是实型数,如4.1,或2.0 / 2。 switch(formWay) { 2//正确 case 2-1 : //正确 ... a//错误 case a-2 : //错误 ... //错误 case 2.0 : //错误 ... } 另外, 与常量值之后,需要一个冒号,请注意不要疏忽。 另外,在case 与常量值之后,需要一个冒号,请注意不要疏忽。
3
实例讲解
写一个程序完成下列功能: 例1 写一个程序完成下列功能
一个整数score 输入 : 一个整数 输出: 输出: 当 score<60 输出 当60<=score <70 输出 当70<=score <90 输出 当90<=score 输出
D C B A
3
实例讲解
分析: 分析: score为整型数,利用两个整数相除,结果自动 score为整型数,利用两个整数相除, 为整型数 取整的特性,score和 取整的特性,score和 score /10 有如下对应关 系:
1.2 if - else if
if (表达式 表达式) 语句1 表达式 语句 else if (表达式 语句 表达式) 表达式 语句2 else if (表达式) 语句 表达式) 语句3 表达式 else …
假
多分支选择结构
流程图如左: 流程图如左: 先判断表达式1的值 先判断表达式 的值 0就执行下一个判断 为0就执行下一个判断 非0就执行下面的语句 就执行下面的语句 一直这样做下去 直到得出最后结果
总结
C语言的选择分支结构有 一元分支: 一元分支: if 二元分支 :if - else 嵌套分支: if - else if - else 嵌套分支: 开关分支: 开关分支:switch
记住这些话
后跟整形, Switch 后跟整形, Case后面接常量, Case后面接常量, 后面接常量 Default是可选项, Default是可选项, 是可选项 常量值须互不同。 常量值须互不同。 只能判断值相等, 只能判断值相等, 遇到break才中断。 遇到break才中断。 break才中断 Break常常很必要, Break常常很必要, 常常很必要 冒号小心别漏掉。 冒号小心别漏掉。
第七、只能判断值相等。 只能判断值相等。 switch并不能代替所有 if..else...语句 这一点你应该知道了, 并不能代替所有的 语句。 switch并不能代替所有的if..else...语句。这一点你应该知道了, 因为前面已说过,它在对变量做判断时, 因为前面已说过,它在对变量做判断时,只能对整型或字符型的变量 做判断。另外,switch也只能做 值是否相等”的判断。 也只能做“ 做判断。另外,switch也只能做“值是否相等”的判断。你不能在 case里写条件 里写条件: case里写条件: switch (i) { //错误 case里只能写变 错误! case (i >= 32 && i<=48) //错误! case里只能写变 量的可能值,不能写条件。 量的可能值,不能写条件。 ... } 在这种情况下, if...else来实现 来实现。 在这种情况下,你只能通过 if...else来实现。
谢谢
第四、 Default是可选项 是可选项。 第四、 Default是可选项。 default是可选中,前面我们已经说过它的用处,及如果没有default default是可选中,前面我们已经说过它的用处,及如果没有default 是可选中 ,程序在找不到匹配的case分支后,将在switch语句范围内不做什么 程序在找不到匹配的case分支后,将在switch语句范围内不做什么 case分支后 switch 事,直接完成switch。 直接完成switch。 switch
第五、常量值须互不同。 第五、常量值须互不同。 每一个case的常量值必须互不相同, 每一个case的常量值必须互不相同,否则就会出现同一个值有两种 case的常量值必须互不相同 或多种执行方案。 或多种执行方案。
第六、必要时,可在各个case中使用{}来明确产生独立的复合语句。 必要时,可在各个case中使用{}来明确产生独立的复合语句。 case中使用{}来明确产生独立的复合语句 switch (formWay) { case 1 : //错误 由于case不明确的范围, 错误。 case不明确的范围 int a=2; //错误。由于case不明确的范围,编译器无法在此 处定义一个变量。 处定义一个变量。 ... case 2 : . .. } 在这种情况下,加上{}可以解决问题 在这种情况下,加上{}可以解决问题 {}