第五讲—Switch 选择结构

合集下载

5.选择结构的程序设计

5.选择结构的程序设计

后续语句;
(6) switch语法中的case后的表达式必须是常量表达式且互不相同,
即9为整型、字符型、枚举类型的常量值,但不能包含变量;
9
3. 语句嵌套
语句嵌套:在if或switch语句中又包含一个或者多个if或switch语句
if ( ) if( ) 语句1; else 语句2;
else if( ) 语句1; else 语句2;
例2:根据成绩等级输出百分制分数段
#include<iostream>
using namespace std;
int main()
{
int g;
cin>>g; //输入成绩等级
switch(g)
{
case 'A':cout<<"85~100\n"; break;
case 'B':cout<<"70~84\n"; break;
注意:
(1) if与else的配对,else总是与它上面最近的、且未配对的if配对;
(2) 可以通过加{}来确定配对关系,防止出错;
10
10
4. 本讲小结
if语句 switch语句 语句嵌套
11
11
case 'C':cout<<"60~69\n"; break;
case 'D':cout<<"<60\n"; break;
default: cout<<"error\n";
}
return 0;
}7

C语言-switch选择结构

C语言-switch选择结构

C语⾔-switch选择结构⽬录switch 选择结构/*if(条件表达式){代码块}switch(条件表达式){case 整数:语句;break;case 整数:语句;break;default:语句;break;}// switch 会取出条件表达式的值,如果与 case 后⾯整数相等就会执⾏这个 case 下的语句,break 就会跳出,如果前⾯的都不满⾜,那么就会执⾏ default// 1,拿到的条件表达式的值必须是整数才⾏// 2,利⽤条件表达式的值与 case 后⾯的整数是否相等,如相等,就会执⾏该 case 后⾯的语句,// 3,执⾏完该语句,遇到 break 就会结束整个 switch 语句,也就是说后⾯得有语句都不会执⾏// 4,如果前⾯的 case 后⾯值与条件表达式的值不相等就会继续执⾏后⾯的 case// 5,如果前⾯的条件表达式与 case 的整数都不相等就会执⾏ default 的case*/int age = 1;switch (age) {case 3:printf("还在喝奶的阶段");break; // 执⾏到 break 就会结束 switch 语句case 6:printf("该上⼩学了");break;case 18:printf("该去⽹吧打游戏了");break;default:printf("该好好上班,挣钱养家");break;}switch 的结束执⾏到相等的 case 后⾯的整数,遇到 break执⾏到 switch 语句的⼤括号如果执⾏到对应的 case 时,但是没有写 break,此时后⾯的 case 和 default 语句会失效,但是⾥⾯的代码块不会失效(case 的穿透问题) int age = 6; // age = 6 的时候switch (age) {case 3:printf("还在喝奶的阶段");break;case 6:printf("该上⼩学了"); // 执⾏到这个 case 的代码,但是没有写 break,后⾯的 case 和 default 代码就会失效.但是⾥⾯的代码块像 parinf 不会失效// 没有写 breakcase 18:printf("该去⽹吧打游戏了");// 没有写 breakdefault:printf("该好好上班,挣钱养家");// ,没有写 break}// 相当于执⾏了这个代码int age = 6; // age = 6 的时候switch (age) {case 3:printf("还在喝奶的阶段");break;printf("该上⼩学了"); // 执⾏到这个 case 的代码,但是没有写 break,后⾯的 case 和 default 代码就会失效.但是⾥⾯的代码块像 parinf 不会失效 // 没有写 break// case 18:printf("该去⽹吧打游戏了");// 没有写 break// default:printf("该好好上班,挣钱养家");// ,没有写 break}// 控制台输出:该上⼩学了该去⽹吧打游戏了该好好上班,挣钱养家最后⼀个case 或者 default后⾯的 break 可以省略,因为后⾯就是switch 的⼤括号,也是代表 switch 的结束switch 的注意点Switch的条件表达式必须是返回整数的格式,也就是说()中只能放整数// 只有整数类型才可以哦float num = 10.3f;switch (num) { // 报错case 10:printf("是⼀个⼩数,会打印么?");break;default:break;}// char 类型可以,char 类型可以转换为整数char str = 'a';switch (str) {case 'a':printf("char 类型是可以的,因为 char 类型可以转换为整数,char 类型的底层是阿斯克码 ");break;default:printf(" ");break;}case 的取值必须是整数,或者能够转换为整数的类型case 的取值不能重复int num = 10;switch (num) {case 10:printf("10");break;case 10: // 报错,case 不能重复printf("10");break;default:printf(" ");break;}case 后⾯不能放变量因为系统在编译的时候会对 switch后⾯的 case进⾏优化,会根据后⾯ case 的值⽣成⼀个取值表 int num = 10;switch (10) {case num: // 报错,不能放变量printf("10");break;default:printf(" ");break;}default 的位置⽆论 default 的位置写在哪个位置,都是最后执⾏如果 default 放在前⾯了,那么就⼀定要加上 break,不能省略只要 default 满⾜,那么后⾯的 case 也会失效,所以注意写上 breakswitch 练习/*要求⽤户输⼊⼀个分数,根据⽤户输⼊的分数输出对应的等级*/printf("请您输⼊⼀个分数,已回车结束\n");int garde = 0;scanf("%i",&garde);// 第⼀种⽅法switch (garde / 10) { // 分数除以 10 再利⽤隐式转换为 int 类型就可以得到整数case 10: // 利⽤ case 的穿透case 9:printf("A");break;case 8:printf("B");break;case 7:printf("C");break;case 6:printf("D");break;default:printf("E");break;}// 第⼆种⽅法if (garde >= 90 && garde <= 100){printf("A");}else if (garde >= 80 && garde <= 89){printf("B");}else if (garde >= 70 && garde <= 79){printf("C");}else if (garde >= 60 && garde <= 69){printf("D");}else if (garde >= 0 && garde <= 59){printf("E");}else{printf("输⼊成绩错误");}// 第三种⽅法(巧妙的利⽤ if else if 的结构,从上往下执⾏,第⼀条不满⾜执⾏到第⼆条,执⾏到后⾯的 else if 代表肯定前⾯的条件不符合.所以) if (garde < 0 || garde > 100){printf("您输⼊的分数不对");}else if (garde >= 90 && garde <= 100){printf("A");}else if (garde >= 80){printf("B");}else if (garde >= 70){printf("C");}else if (garde >= 60){printf("D");}else{printf("E");}return 0;}switch 的局限性在开发中中 if ⽐较多,⽐较灵活如果说是对固定的值,进⾏判断,并且这些值的数量不多的时候可以使⽤ switch从理论上来说 switch的性能效率要⽐ if ⾼// 练习 2/*// 从键盘输⼊⼀个数字,判断其是哪个季节printf("请您输⼊⼀个数字,以回车结束");int num = 0;scanf("%i",&num);switch (num) {case 12:case 1:printf("春节");break;case 6:case 7:case 8:printf("夏季");break;case 9:case 10:case 11:printf("秋季");break;default:printf("你输⼊的是啥玩意");break;}*/// 写⼀个计算器,⽤户输⼊⼀个数,操作符,再⼀个数,根据操作符计算结果/*printf("请您输⼊第⼀个数,操作符,和第三个数,以逗号分割,以回车结束\n");printf("操作符:1:+,2:-,3:/,4:*\n");int num1,num2,num3;;scanf("%i,%i,%i",&num1,&num2,&num3);switch (num2) {case 1:printf("两数相加:result = %i\n",num1+num3);break;case 2:printf("两数相减:result = %i\n",num1-num3);break;case 3:printf("两数相除:result = %i\n",num1/num3);break;case 4:printf("两数相乘:result = %i\n",num1*num3);break;default:printf("num2只接受 1-4 的整数");break;}*/printf("请您输⼊第⼀个数,以回车结束\n");int num1,num2;scanf("%i",&num1);printf("请您输⼊操作符,以回车结束\n");// char temp;// scanf("%c",&temp);getchar(); // 使⽤getchar()将前⾯的\n 取出来char op;scanf("%c",&op); // 此时注意前⾯有⼀个scanf 函数,输⼊了回车后此时输⼊缓冲区中还是保留的\n,所以第⼆个 scanfr 让输⼊⼀个%c 类型的字符时就不会让你输⼊了 printf("请您输⼊第⼆个数,以回车结束\n");scanf("%i",&num2);int result = -1;switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:printf("只接受 '+','-','*','/' 操作符");break;}printf("result = %i\n",result);return 0;}。

09_switch语句以及用switch语句和break语句构成的选择结构

09_switch语句以及用switch语句和break语句构成的选择结构

4.4.2 switch执行过程
switch语句的执行流程是:首先计算switch后 面圆括号中表达式的值,然后用其结果依次与各 个case的常量表达式相比较,若圆括号中表达式 的值与某个case后面的常量表达式的值相等,就 执行此case后面的语句,执行后遇break语句就退 出switch语句;若圆括号中表达式的值与所有 case后面的常量表达式的值都不相同,则执行 default后面的语句n+1,执行后退出switch语句, 退出后程序流程转向开关语句的下一个语句。
44switch语句以及用switch语句和break语句构成的选择结构44switch语句以及用switch语句和break语句构成的选择结构441switch语句通过前面的讨论我们知道if语句处理两个分支处理多个分支时需使用ifelseif结构但如果分支较多则嵌套的if语句层数就越多程序不但冗长而且理解也比较困难
(2)如果在case后面包含多条执行语句时,也不 需要加大括号,进入某个case后,会自动顺序执 行本case后面的所有执行语句。 (3)default总是放在最后,这时,default后不需要 break语句。并且,default部分也不是必须的,如 果没有这一部分,当switch后面圆括号中表达式 的值与所有case后面的常量表达式的值都不相等 时,则不执行任何一个分支直接退出switch语句。 此时,switch语句相当于一个空语句。例如,将 上面例子中switch语句中的default部分去掉,则 当输入的字符不是“A”、“B”、时,此switch语 句中的任何一条语句也不被执行。
说明: (1)switch、case、break、default均为C语言的保留 字。 (2)swich的表达式通常是一个整型或字符型变量,也 允许是枚举型变量,其结果为相应的整数、字符或枚 举常量。 (3)常量表达式又称为开关常数,必须是与表达式对 应一致的整数、字符或枚举常量。 (4)语句1至语句n,可以是简单语句,也可以是复合 语句。 (5)在关键字case和常量表达式之间一定要有空格。 ※重点提示:在switch语句中,default以及break是 可以有也可以没有的,且case语句标号后的语句也可 以省略不写。

教学内容if语句switch语句选择结构程序举例

教学内容if语句switch语句选择结构程序举例

case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf(“grade=E\n”); break;
default: printf(“The score is out of range!\n”);}
}
程序运行情况如下:
Input a score(0~100): 85↙
例 6.5 输入 + * - / , 输出对应的单词。 #include<stdio.h> main() { char ch ; ch=getchar(); if (ch=='+') printf("plus\n"); else if (ch=='-') printf("minus\n"); else if(ch=='*') printf("multiply\n"); else if (ch=='/') printf("divide\n"); else printf("error\n"); }
printf("input two numbers: "); scanf("%d%d",&a,&b); if(a>b) printf("max=%d\n",a); else printf("max=%d\n",b); }
例6.3从键盘输入两个数,按升序输出两个数 #include <stdio.h> main() {
教学内容if语句switch语句选择结构程序举例
在C语言中,当需要根据选择条件来确定所要做 (执行)哪一项数据处理的情况,这样的程序结构,被 称为选择(分支)结构。

实验5、选择结构程序结构

实验5、选择结构程序结构

实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。

2、 掌握利用if 语句实现选择结构的方法。

3、 掌握利用switch 语句实现多分支选择结构的方法。

4、 掌握try 语句的使用。

5、 掌握利用for 语句实现循环结构的方法。

6、 掌握利用while 语句实现循环结构的方法。

7、 熟悉利用向量运算来代替循环的操作方法。

二、实验内容:1、 列分段函数的值。

⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。

提示:x 的值从键盘输入,可以是向量。

clearx=input('请输入x 的值:x=');if x<0&x~=-3y=x^2+x-6;elseif x>=0&x<10&x~=2&x~=3y=x^2-5.*x+6;else y=x^2-x-6;enddisp(y)(2) 用逻辑表达式实现上述函数。

2、 输入一个百分制成绩,要求输出成绩的等级为A ,B ,C ,D ,E 。

其中90~100分为A ,80~89分为B ,70~79分为C ,60~69分为D ,60分以下为E 。

要求:(1)分别用if 语句和switch 语句实现。

clearx=input('请输入你的成绩x=');if x<=100&x>90disp('A');elseif x>80&x<=89disp('B');elseif x>70&x<=79disp('C');elseif x>60&x<=69disp('D');else disp('E');endclear;x=input('请输入你的成绩x=');switch fix(x)case num2cell(90:100),disp(char(65));case num2cell(80:89),disp(char(66));case num2cell(70:79),disp(char(67));case num2cell(60:69),disp(char(68));case num2cell(0:59),disp(char(69));otherwise disp('你输入的成绩无效');end(2)输入百分制成绩后要判定该成绩的合理性,对不合理的成绩要输出出错信息。

5选择结构程序设计

5选择结构程序设计

内嵌if 内嵌if
例 输入两数并判断其大小关系
#include <stdio.h> void main() { int x,y; printf("Enter integer x,y:"); 运行:Enter integer x,y:12,23↵ X<Y scanf("%d,%d",&x,&y); Enter integer x,y:12,6↵ if(x!=y) X>Y if(x>y) printf("X>Y\n"); Enter integer x,y:12,12↵ else printf("X<Y\n"); X==Y else printf("X==Y\n"); }
0 2 0
<
>
任务5.2 逻辑运算符和表达式 任务
逻辑运算符
种类: ! (逻辑非) && (逻辑与) || (逻辑或) 逻辑运算真值表 a 真 真 假 假 b 真 假 真 假 !a 假 假 真 真 !b 假 真 假 真 a&&b 真 假 假 假 a||b 真 真 真 假
C语言中,运算量:
0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”,
§形式三:else…if结构
#include "stdio.h" void main() { int a,b,c,max; printf("请输入三个整数a,b,c:"); scanf("%d%d%d",&a,&b,&c); if(a<b) if(b<c) max=c; else max=b; else if(a<c) max=c; else max=a; printf("%d,%d,%d中最大数为%d\n",a,b,c,max); }

选择结构程序设计

选择结构程序设计

选择结构程序设计选择结构程序设计在程序设计中,选择结构是一种非常重要的控制结构。

通过选择结构,我们可以根据程序的运行情况来决定执行不同的代码块。

选择结构能够实现条件判断和分支选择,为程序的灵活性和可扩展性提供了极大的便利。

本文将介绍选择结构的概念、语法和几种常用的选择结构程序设计方法。

选择结构的概念选择结构是指程序根据不同的条件执行不同的代码块。

在选择结构中,通常会使用条件判断来确定程序执行的路径。

根据条件表达式的返回值(真或假),程序会决定执行真值分支(True branch)或者假值分支(False branch)。

选择结构的出现可以使程序更具有灵活性和可扩展性。

选择结构的语法在大多数编程语言中,选择结构通常有两种形式:`if`语句和`switch`语句。

if语句`if`语句是最基本的选择结构语句。

它可以根据某个条件的真假来执行不同的代码块。

`if`语句的语法如下:```markdownif (condition) {// 如果条件为真,执行这里的代码块} else {// 如果条件为假,执行这里的代码块}```其中`condition`是一个条件表达式,它能够返回一个布尔值(真或假)。

如果`condition`为真,程序会执行`if`后面的代码块;如果`condition`为假,程序会执行`else`后面的代码块。

switch语句`switch`语句是另一种常用的选择结构语句。

它可以根据一个表达式的值,选择性地执行多个代码块中的一个。

`switch`语句的语法如下:```markdownswitch (expression) {case value1:// 如果`expression`的值等于`value1`,执行这里的代码块break;case value2:// 如果`expression`的值等于`value2`,执行这里的代码块break;default:// 如果`expression`的值不等于任何一个`case`中的值,执行这里的代码块break;}````expression`是一个表达式,它的值和`case`后面的值进行比较。

第五讲switch算法和流程图ok

第五讲switch算法和流程图ok

: case 常量n:语句n 常量n
default:语句n+1
}
表达式的值没
2024/8/3
有匹配的常量11
C语言程序设计
注意事项
1 括号内的表达式可以是 int ,char。
2 case 后的每个常量表达式必须各不相同。
3 case 和 default的位置是任意的。 4 每一个case之后应有一个 break(间断语句); 以跳出 switch( ) 结构。
• 计算实解
• 打印结果
• 否则,打印“没有实解”
它涉及两部分处理,执行将按1)~2)顺序。1)
内有包含两部分处理,计算和打印
2024/8/3
42
算法设计举例 C语言程序设计
开始
输入系数a,b,c
计算s=b*b-4ac s>=0 Yes
No
输出”没有实解”
x1=(-b+sqrt(s))/2a x2=(-b-sqrt(s))/2a
由3种基本结构组成的算法结构,可以解决任何 复杂的问题,由基本结构组成的算法,是结构化 的算法。
表达式
A处理
B处理
C处理
N处理
2024/8/3
41
算法设计举例 C语言程序设计
例:用程序流程图表示方程的求实解算法。没
有实解打印“没有实解”a2xb xc0
具体步骤为:
• 输入系数a,b和c
• b*b-4ac>=0 有实解
5 每个case 之后的执行语句可多于一个,
但不必加{ }。
6 允许几种case情况下执行相同的语句,不必每个
2都024写/8/3case 。
12
举例 C语言程序设计

05-多重分支结构-switch语句课件

05-多重分支结构-switch语句课件
if语句都有等价的switch语句。switch语句只能用来实现 以相等关系作为选择条件的选择结构。
7
输入: 8 5
输出:grade:B
4
思考题:输入某年某月,试计算该年该月共有几天?
问题分析: • 要考虑闰年闰月的情况,以及输入非法数据情况。 • 采用switch语句处理多种情况。
• 判断某年是否是闰年 变量year是否为闰年的条件:能被4整除但不能被100整除,或 能被400整除。 (year 4==0 && year 100!=0)||(year 400==0) 或(year 4!=0)||(year 100 ==0 && year 400 !=0)
问题:
如何将学生百分制成绩转换 为五级分制?
• 使用if语句的嵌套形式处 理多种条件的选择,如果 嵌套层次太多,会使得程 序的可读性降低。
• switch开关语句提供了方 便的结构形式。
为什么引出switch语句?
N 条件1
Y
N 条件2
Y
N 条件3
Y
语句1
语句2
语句3
语句n
1
switch 语句
语句格式:
1)计算表达式的值;
2)找到与表达式的值相同的case常量表达式,执行该case后边的语句序列,
之后转去执行switch的后续语句。
3
例 百分成绩转为五级分成绩 --switch语句实现
#include "stdio.h" int main() { int score,mark;
scanf(" d", &score); mark=score/10; switch(mark) {

《选择结构程序设计》课件

《选择结构程序设计》课件

双分支if语句
2
码。
根据条件的真假,分别执行两个不同
的代码块。
3
多分支if语句
根据多个条件判断,选择不同的执行f语句块中嵌套if语句块,实现复杂 的条件判断。
switch语句
switch语句介绍
根据表达式的值选择不同的 执行路径。
switch语句语法
switch(表达式){ case 值1: 代 码块1; break; case 值2: 代码 块2; break; default: 默认代码 块; }
选择结构程序设计
这个PPT课件将介绍选择结构程序设计的概念、if语句、switch语句、循环结 构以及相关的综合案例实践和注意事项,帮助您更好地掌握程序设计思路。
程序结构分类
线性结构
顺序执行的程序结构,按照代 码的先后顺序执行。
选择结构
循环结构
根据条件选择不同的执行路径, 使用if语句或switch语句实现。
重复执行某一段代码,使用 while循环、do...while循环或 for循环实现。
选择结构概念
条件判断
根据条件的真假选择不同的执行路径。
if语句
根据条件判断,决定是否执行某一段代码。
switch语句
根据给定的表达式的值,选择相应的执行路径。
if语句详解
1
单分支if语句
当条件为真时,执行if语句块中的代
switch-case语句的使用
根据不同的case值选择执行 相应的代码块。
循环结构
while循环
根据条件重复执行一段代码, 直到条件不满足。
do...while循环
for循环
先执行一次代码,然后根据条 件重复执行,直到条件不满足。

5-6章 选择结构循环结构

5-6章 选择结构循环结构

第五章选择结构循环结构1.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是。

(1级)A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)2.main( ){ int x=5,a=0,b=0;if(x=a+b) prin tf(“** **\n”);else printf(“## ##\n”);以上程序。

(1级)A)有语法错,不能通过编译B)通过编译,但不能连接C)输出** ** D)输出## ##3.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是。

(1级)main( ){ int x;scanf(“%d”,&x);if(x++>5) printf(“%d”,x);else printf(“%d\n”,x--);}A)7和5 B)6和3 C)7和4 D)6和44.假定所有变量均已正确说明,下列程序段运行后x的值是。

(1级)a=b=c=0;x=35;if(!a) x=-1;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)35.能表示整数x符合下面两个条件的语句是。

(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4==0&&x%100!=0)||x%400==0B)(x%4==0||x%100!=0)&&x%400==0C)(x%4==0&&x%400!=0)||x%100==0D)(x%100==0||x%4!=0)&&x%400==06.若I为整型变量,则下列程序段的运行结果为。

C语言程序设计教程:选择结构程序设计

C语言程序设计教程:选择结构程序设计
25
4.2 switch语句
(5) case后面的语句块可以是一条语句或多条语句,也可 是空语句,但不需要用大括号括起来。
(6) 当case后面常量表达式与switch后面的表达式均不匹 配时,则执行default后面的语句块,default可以放在程序的 任何位置,不一定要位于最后。
(7) 多个case可以共用一个语句块。 例如: switch(n)
注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。 因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。
15
4.1.1 if语句的三种形式
思考:若将例4.4中程序改为以下两种写法,结果分别会如何?
程序段一如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=90)
4.1.1 if语句的三种形式
程序段二如下: #include <stdio.h> main() {
float score; printf("请输入学生期末考试成绩(0-100):\n "); scanf("%f", &score); if(score>=60)
printf("及格!\n "); else if(score>=70)
9
4.1.1 if语句的三种形式
2. 双分支选择结构
双分支结构语法的一般格式为:
if(表达式)
{
语句块1;
}

java选择结构语句

java选择结构语句

java选择结构语句
Java选择结构语句包括if语句、switch语句。

1. if语句:
if语句用于根据条件执行不同的代码块。

语法如下:
```
if (条件) {
// 代码块
}
```
如果条件成立,则执行if语句中的代码块。

如果条件不成立,if语句中的代码块将被跳过。

if语句还可以和else语句一起使用,如下所示:
```
if (条件) {
// 代码块1
} else {
// 代码块2
}
```
如果条件成立,则执行代码块1;否则执行代码块2。

2. switch语句:
switch语句用于根据不同条件执行不同的代码块。

语法如下:```
switch (表达式) {
case 值1:
// 代码块1
break;
case 值2:
// 代码块2
break;
...
default:
// 默认代码块
break;
}
```
switch语句会匹配表达式的值和相应case中的值,如果匹配成功,则执行对应的代码块。

如果没有匹配成功,则执行默认代码块。

在case代码块中必须使用break语句来结束代码块,否则会继续执行下一个case代码块。

C语言程序设计—选择结构

C语言程序设计—选择结构
#include <stdio.h>
int main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
return 0;
}
条件表达式“(ch>='A'&&ch<='Z')?(ch+32):ch”的作用是:
else y=0;
if (0) 语句5
//表达式是整数0,条件判断结果为假,不执行语句5,接着执行下一语句
if(x+3.5) 语句6
//表达式是实数表达式,若x+3.5不等于0,则条件判断结果为真,执行语句6
小例子
判别用year表示的某一年是否
闰年,可以用一个逻辑表达式
来表示。闰年的条件是符合下
面二者之一: ①能被4整除,
scanf("%f,%f",&a,&b);
if(a>b)
{
//将a和b的值互换
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
两个变量值的互换
a=b; //把变量b的值赋给变量a,a的值等于b的值
b=a; //再把变量a的值赋给变量b,变量b值没有改变
再执行关系运算“1>c”,得值0,赋给f,所以f的值为0
逻辑运算符和逻辑表达式

C语言学习-选择结构if语句、switch语句

C语言学习-选择结构if语句、switch语句

C语⾔学习-选择结构if语句、switch语句今天主要学习了,if语⾔和switch语句,下⾯直接进⼊正题。

C语⾔为我们提供了3种流程控制结构,分别为:顺序结构,选择结构,循环结构。

顺序结构:默认的流程结构。

按照书写顺序执⾏每⼀条语句。

选择结构:对给定的条件进⾏判断,根据不同的结果执⾏不同的代码断。

循环结构:对给定条件成⽴的情况下,反复执⾏某⼀代码断。

3种流程图如下:⼀、顺序结构1int main(){23 printf("hello world!\n");45 printf("I like iOS!\n");67return0;89 }以上程序的运⾏结果如下:⼆、选择结构C语⾔中选择结构的实现⽅式有两种:if语句和switch语句。

先来看下if语句的使⽤,⽽if语句的形式是有好多种的。

先来看看if语句最简单的形式if ( 条件 ){语句1;语句2;....}如果if右边⼩括号()中的条件成⽴,也就是为“真”时,就会执⾏第2~6⾏⼤括号{}中的语句;如果条件为假,就不执⾏⼤括号{}中的语句。

这⾥的if是关键字。

例如:1int main(){23int a = 7;45if ( a ){6 printf("条件a成⽴\n");7 printf("a的值为真");8 }910 }C语⾔规定所有⾮0值都为“真”,⽽a的值是7,因此第3⾏的条件是成⽴的,接着就会执⾏第5、6⾏代码。

输出结果如下:条件a成⽴a的值为真如果将a的值改为0,那么第3⾏的条件就不成⽴,就不会执⾏第5、6⾏代码语句嵌套if1int main(){23int a = 7;45if ( a > 0 ){67 printf("a的值⼤于0\n");89if ( a<9 ){1011 printf("a的值⼩于9");12 }13 }14 }第3⾏的a>0是成⽴的,因此会按顺序执⾏第4~11⼤括号中的代码。

switch选择结构

switch选择结构
请求出错错误代码503请尝试刷新页面重试
switch的语法
switch选 择 结 构
switch专门用有比较等值的判断 其中要注意的点 1:它的case 后面的常量名是不可以重复的 2:每一个case后面都不要忘记写break 3:swltch 后面的表带是不能是double类型的它只能是int类型的 4:其default的顺序是可以改变的 但是要注意执行的顺序通常 default是放在结尾的 也可以省略 案例:
其中switch与 多重if的区别 相同点:它们都是用来处理多分支条件的结构 不同点: switch选择结构只能处理等值条件判断的情况 多重if选择结构没有switch选择结构的限制适合某个变量处于某个区间段
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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"); }
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"); }
#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; }
5.2 应用举例
• 解题思路:
– 判断出这是一个多分支选择问题 – 根据百分制分数将学生成绩分为4个等级 – 如果用if语句,至少要用3层嵌套的if,进行 3次检查判断 – 用switch语句进行一次检查即可得到结果
#include <stdio.h> int main() { char grade; scanf("%c",&grade); printf("Your score:"); switch(grade) 值为A { 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; }
Hale Waihona Puke #include <stdio.h> int main() { char grade; scanf("%c",&grade); printf("Your score:"); switch(grade) 值为C { 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; }
C语言课程系列 第五讲—Switch 选择结构
新课引入
• 在实际应用中,要在多种情况中选择一种情况,执行 某一部分语句。
• 当然可以使用嵌套的if , if.. else if语句来处理, 但其分支过多,程序冗长,难读, 不够灵巧。
switch 语句实现多分支选择语句.
第5讲 Switch选择结构
#include <stdio.h> int main() { char grade; scanf("%c",&grade); printf("Your score:"); switch(grade) 值为F { 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; }
scanf("%c",&grade); printf("Your score:"); switch(grade) { case 'A‘: case 'B‘: case 'C': printf("60~69\n");break; case 'D': printf("<60\n");break; default: printf("enter data error!\n"); }
5.1 Switch语句的一般形式
5.2 应用举例
5.3 Switch语句与if实现多分支的区别
第5讲 Swich选择结构
教学重难点:
1 switch语句的结构 2 switch语句与if语句的区别
5.1 Switch语句的一般形式
• switch语句的作用是根据表达式的值,使流 程跳转到不同的语句 • switch语句的一般形式: 表达式可以是整
#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; }
5.3 Switch语句与if实现多分支的区别
• 1. switch只能进行值的相等性的检查.
• 2. if语句不但可以进行相等性的检查, 还可以
计算关系表达式或逻辑表达式,进行逻辑判断的真
假.
switch(表达式) { case 常量1:语句1 case 常量2:语句2 不能相同 ┇ ┇ ┇ case 常量n:语句n default : 语句n+1 }
型、字符型等表 达式。
5.2 应用举例
例5.1 要求按照考试成绩的等级输出百分 制分数段,A等为85分以上,B等为70~ 84分,C等为60~69分 ,D等为 60分以 下 。成绩的等级由键盘输入。
相关文档
最新文档