switch选择结构
c语言switch中default的用法
C语言中switch语句是一种选择结构,根据表达式的值选择执行哪个分支。
在switch语句中,我们可以使用default关键字来定义一个默认分支,当表达式的值不匹配任何case时就会执行default分支。
1. default的位置default分支通常放在switch语句的作为最后的备用选项。
在switch 语句中,表达式的值会和每个case的值依次比较,如果都不匹配,才会执行default分支。
代码示例:```cswitch (expression) {case value1:// do somethingbreak;case value2:// do somethingbreak;default:// do somethingbreak;}```2. default的作用default分支的作用是处理表达式的值不在任何case的取值范围内时的情况。
当表达式的值不匹配任何case时,会直接执行default分支内的代码。
default分支可以用来处理一些特殊情况或错误情况,保证程序的健壮性。
3. default的使用场景- 处理非法输入:在实际的程序中,用户输入的数值不一定总是符合预期,此时可以使用default分支来处理非法输入的情况,给出提示或进行错误处理。
- 处理未知情况:有时候我们可能无法穷尽所有可能的取值,这时可以使用default分支来处理未知情况,保证程序的完整性。
- 防止意外情况:即使在正常情况下,也可能出现意外的取值,使用default分支可以作为一个备用的处理方式,防止意外情况导致程序崩溃或出现异常行为。
4. default的注意事项- default分支并不是必需的,可以根据实际情况选择是否添加default分支。
- 默认情况下,如果没有匹配的case且没有default分支,switch语句就不会执行任何操作,直接跳过。
- 在default分支的通常会使用break语句来结束switch语句,但这并不是必需的。
c中switch用法
c中switch用法C语言中的`switch`语句是一种在多个选项之间进行选择的控制结构。
它提供了一种简洁而有效的方式来编写选择性的代码块。
本文将详细介绍`switch`语句的用法、语法和一些示例。
1. `switch`语句的基本用法`switch`语句的基本结构如下:cswitch (expression) {case constant1:代码块1break;case constant2:代码块2break;...case constantN:代码块Nbreak;default:默认代码块}其中,`expression`是一个表达式,它的值会与`case`语句中的常量进行比较。
如果匹配成功,则执行对应`case`后面的代码块,并跳出`switch`语句。
如果没有匹配成功,则判断是否有`default`语句,如果有则执行`default`后面的代码块,否则直接跳出`switch`语句。
2. `switch`语句的示例为了更好地理解`switch`语句的用法,我们来看几个示例。
# 2.1 根据星期输出相应的信息c#include <stdio.h>int main() {int day;printf("请输入星期数(1-7): ");scanf("%d", &day);switch (day) {case 1:printf("周一是工作日\n");break;case 2:case 3:case 4:case 5:case 6:printf("周二到周六也是工作日\n");break;case 7:printf("周日是休息日\n");break;default:printf("输入错误\n");}return 0;}在上述代码中,我们根据输入的星期数,使用`switch`语句输出相应的信息。
高中信息学奥赛C++ 第3章 选择结构(C++版)
//maxn 为a,b中的最大值 //maxn 为a,b,c中的最大值
三、目运算符 c++有一个常用来代替if else 语句的操作符,这个操作符 被称为三目运算符(?:),它是c++中唯一一个需要3个操作数的 操作符。该操作符的通用格式如下: b?a:c 如果 b为 true ,则整个表达式的值为 a;否则,整个表达 式的值为c。下面两个语句演示了该操作符是如何工作的: x=5>3?10:12 // 5>3为true,所以 x=10; x=3==9?25:18 // 3==9为false,所以 x=18;
#include<iostream> using namespace std; int main() { int t; cin >> t; if ((t>=25) &&(t<=30)) cout<<"ok!\n"; else cout<<"no!\n"; return 0; }
格式2 : if (条件表达式) { 语句1; 语句2; …… } else { 语句1; 语句2; …… } 若分支语句由多个句子构成,我们必须把这些句子括在一 对花括号{ }内。
条件表达式
false
true 语句1
图3-1
程序设计风格提示:从语法上来讲,整个if语句可以写 在一行。如果条件表达式和语句都非常简单,那么整个语句 可以写在一行;否则,最好在条件表达式后换行,而且语句 部分要相对if缩进两格。
例3.1 读入一个整数a,如果a为偶数在屏幕上输出yes #include<iostream> using namespace std; int main( ) { int a; cin>>a; if (a%2==0) cout<<"yes"; return 0; } 注意:关系运算符==用来表达该符号的左右两边是 否相等,不要写成赋值号=。 试一试
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;}。
wincc的c语言的选择结构
wincc的c语言的选择结构
WinCC是西门子公司的一款用于监控和控制系统的软件平台,
它通常用于工业自动化领域。
在WinCC中使用C语言编写的代码通
常用于定制化功能和特定的控制逻辑。
选择结构是C语言中的一种
控制结构,主要包括if语句和switch语句。
在WinCC中使用C语言的选择结构,可以通过if语句实现条件
判断和分支控制。
if语句的基本语法是if(条件表达式) {语句块},其中条件表达式为真时执行语句块中的代码,否则跳过。
在WinCC 中,可以利用if语句来根据特定的条件执行不同的操作,比如根据
传感器数据来触发报警或者执行特定的控制逻辑。
另外,WinCC中也可以使用switch语句来实现多条件的选择结构。
switch语句的基本语法是switch(表达式) {case 值1: 语句
块1; break; case 值2: 语句块2; break; default: 默认语句
块; },其中根据表达式的值来匹配不同的case,执行相应的语句块。
在WinCC中,switch语句可以用于根据不同的输入信号执行不
同的操作,比如根据不同的控制模式来选择不同的控制策略。
总之,在WinCC中使用C语言的选择结构,可以通过if语句和
switch语句来实现条件判断和分支控制,从而实现定制化的功能和特定的控制逻辑。
这些选择结构可以帮助工程师根据不同的条件来执行不同的操作,提高系统的灵活性和可定制性。
switch结构的用法及作用
switch结构的⽤法及作⽤
为什么要使⽤switch 循环结构:
因为多重if选择结构从代码上看的话,显得结构复杂,容易出错,代码多,冗余且有多次的等值判断。
为了解决上述问题,我们开发出switch选择结构。
if选择结构主要⽤于区间的判断上如 boolean类型,switch选择结构⽤于等值的判断。
switch语法结构:
switch(){ //switch后⾯的括号⾥可以⽤ int short,buye double等类型。
但是String类型只有在JDK 7之后才能⽤,如果在 JDK 7之前版本使⽤会报错。
case 1: //需要注意,case 后⾯的常量名不得重复。
case后⾯的常量需要安装使⽤顺序进⾏排列,switch后⾯的值会寻找⾃⼰和⾃⼰相匹配的值,然后执⾏对应的程序,如果未找到的话,则执⾏default对应的程序。
break; //break语句是结束当前循环的语句,如果循环后⾯⽆break的话,代码会继续向下执⾏,就会导致系统重复显⽰。
case 2: //default在循环末尾时,break可以省略(但是我们不推荐这么使⽤),如果在其他·位置时,必须加上break,不可省略。
break;
case 3:
break;
default:
break;
}
switch与多重if选择结构的⽐较:
相同点:他们都是⽤来处理多分⽀的选择结构。
不同点:多重if选择结构没有switch选择结构的现在,特别适合处理1某个变量处于某个连续区间的情况。
⽽switch只能处理等值的判断情况。
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语句选择结构程序举例
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语言中,当需要根据选择条件来确定所要做 (执行)哪一项数据处理的情况,这样的程序结构,被 称为选择(分支)结构。
使用switch语句做分支判断的时候,只能判断常量表达式
使用switch语句做分支判断的时候,只能判断常量表
达式.
使用switch语句做分支判断的时候,只能判断常量表达式。
switch 语句是c语言分支语句的一种,主要用于实现多分支的选择结构。
switch后接一个表达式,然后根据表达式的值来和case后的常量表达式匹配,从而执行相应的语句。
break不存在的情况下,则会一直向下执行下面case的语句;如果break存在,则不会执行。
default关键字,用于括号中常量和case后常量无匹配的情况。
使用switch语句做分支判断的时候,只能判断常量表达式。
switch 语句和if / else 类似,都可以作为条件分支判断,当分支判断较少的适合推荐使用if / else ;当分支判断比较多的时候推荐使用switch 语句。
使用switch语句做分支判断的时候,只能判断常量表达式。
和
if-else语句不同,switch语句分支语句进行判断的标准只能是常数。
但是有时一个问题直观的判断条件是表达式的真假,在这种情况下,switch语句的应用就显得比较困难;就算可以得到常数,switch后括号里的表达式也很难构建。
使用switch语句做分支判断的时候,只能判断常量表达式。
和
if-else语句不同,switch语句分支语句进行判断的标准只能是常数。
但是有时一个问题直观的判断条件是表达式的真假。
c语言 switch语句的用法
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标签外的其他情况。
switch语句用法
switch语句用法
Switch语句用法
Switch语句是一种常见的控制流语句,主要用于根据给定的条件从多个选项中选择执行代码块。
它在编写程序时提供了一种简洁而有效的方式来处理多个条件分支。
Switch语句通常由多个case分支组成,每个分支都有一个相应的值。
程序将根据给定的条件值找到与之匹配的分支,并执行相应的代码块。
下面是Switch语句的基本结构:
```
switch(condition) {
case value1:
// code block 1
break;
case value2:
// code block 2
break;
...
default:
// code block n
break;
}
```
当执行Switch语句时,首先会检查condition的值。
程序将逐个
检查每个case分支,直到找到可以匹配的分支。
一旦匹配成功,程序将执行相应的代码块,并使用break语句来退出Switch语句。
如果没有找到匹配的分支,则程序将执行default代码块(可选)。
Switch语句在处理多个相互排除的条件时非常强大和高效。
它提供了一种简单的方式来组织代码,使其更容易阅读和理解。
下面是一个实际的示例,演示了如何使用Switch语句来处理不同的条件:
```python
let day = 3;
let dayName;
switch (day) { case 1:
dayName = \。
switch语句
一、switch语法结构1、语句结构switch语句从字面上讲,可以称为开关语句,是一种多分支选择结构,一般与case、break、default配合使用,对流程进行控制。
switch语句的语法格式如下:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;……case 常量表达式n: 语句n;default: 语句n+1;}其中switch、case、break、default都是关键词。
switch作为一个开关,当变量表达式的值对应case中的值时,执行case后面的语句后跳出switch语句,如果都不符合则执行default后面的语句后跳出switch语句。
2. switch嵌套switch语句可以嵌套,也就是在switch语句中的入口处理语句中又包含了switch语句。
case与default标号是与包含它的最小的switch相联系的。
例如:int a,b;//……switch(a){case 1 ://case 2 :switch(b){ //嵌套switchcase 1:case 2:default:}case 3:}二、switch语句规则switch语句非常有用,但在使用时必须谨慎。
所写的任何switch语句都必须遵循以下规则:1、只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。
对于其他类型,则不能使用switch语句。
2、switch()的参数类型不能为实型。
因为switch后面只能带自动转换为整形(包括整形)的类型,比如字符型char,unsigned int等,实数型不能自动转换为整形。
3、case标签必须是常量表达式(constantExpression),如62或者’8’等。
4、case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
5、在case后,允许有多个语句,可以不用{}括起来。
c语言switch函数
c语言switch函数switch函数是C语言中一种选择结构。
它用于从一组值中确定满足条件的值,从而确定执行哪一段代码:1、switch语句的基本结构switch 语句的基本结构如下:switch (表达式){case 值1:语句1;break;case 值2:语句2;break;……default:语句n;break;}其中,表达式是要处理的变量或者表达式, case 后面跟一个“值”,可以是任何整形常量、枚举常量和字符常量; break 语句是结束 case 的标志,如果不写 break 语句,那么程序会自动地从一个case 向下执行直到遇到 break 语句为止, default 语句是可选的;如果值与表达式的值不匹配,就执行 default 语句,如果没有 default 语句,switch 语句将什么也不做。
2、switch函数的功能switch 语句的功能是:(1)先对表达式的值进行判断,若某个 case 的值与表达式的值相等,就会执行 case 后的语句;(2)若没有任何一个case 的值符合要求,就执行 default 语句;(3)因此可以根据表达式的值来选择要执行的语句。
3、switch函数的主要优点(1)switch 语句比 if-else 语句换乘判断效率高。
(2)switch 语句可以有效地处理多个相关分支情况,而不产生层级过深的问题;(3)switch 语句可以检测多个枚举常量,节省代码编写时间;(4)switch 语句可以节省开发和实现时间。
4、switch函数的注意事项(1)switch 语句必须使用switch、case、break 三个关键字;(2)switch 中的表达式只能是整形、字符串和枚举常量;(3)switch 语句的 case 分支的值必须唯一;(4)switch 中的语句必须以 break 语句结束,这样可以防止程序跳转到其它 case 分支;(5)default 语句可以不必最后,若没有 default 语句并且表达式的值不匹配任何 case 值,那么就不会执行任何语句。
C语言程序设计教程:选择结构程序设计
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;
}
switch语法
switch语法/*1、关于switch语句:switch也属于选择语句,也是分⽀语句switch语句的语法结构:switch(int或String类型的字⾯值或变量){case int或String类型的字⾯值或变量:java语句;java语句;...break;case int或String类型的字⾯值或变量:java语句;java语句;...break;case int或String类型的字⾯值或变量:java语句;java语句;...break;...default:java语句;...}2、switch语句的执⾏原理:switch后⾯的⼩括号当中的“数据”和case后⾯的“数据”进⾏⼀⼀匹配,匹配成功的分⽀执⾏3、匹配成功的分⽀执⾏,分⽀当中最后有“break;”语句的话,整个switch语句终⽌4、匹配成功但是分⽀没有“break;”,直接进⼊下⼀个分⽀执⾏(不进⾏匹配),被称之为case穿透现象5、所有分⽀都没有匹配成功,当有default的语句块,会执⾏default分⽀当中的程序6、switch后⾯和case后⾯只能是int或者String类型的数据7、case可以合并:int i = 10;switch(i){case 1; case 10; case 20;System.out.println("!");}*/public class SwitchTest01{public static void main(String[] args){//解决编译报错long a = 100L;switch((int)a){}/*较完整的switch语句*///1 表⽰星期⼀//2 表⽰星期⼆//....//7 表⽰星期天java.util.Scanner s = new java.util.Scanner(System.in);System.out.print("请输⼊数字:");int num = s.nextInt();switch(num){case 1 :System.out.println("星期⼀");break;case 2 :System.out.println("星期⼆");break;case 3 :System.out.println("星期三");break;case 4 :System.out.println("星期四");break;case 5 :System.out.println("星期五");break;case 6 :System.out.println("星期六");break;case 7 :System.out.println("星期天");break;default :System.out.println("输⼊⾮法数字");}}}/*⽂字作为判断*/public class SwitchTest02{public static void main(String[] args){java.util.Scanner s = new java.util.Scanner(System.in);System.out.print("输⼊星期⼏:");String dayOfWeek = s.next();switch(dayOfWeek){case "星期⼀" :System.out.println(1);break;case "星期⼆" :System.out.println(2);break;default :System.out.println("输⼊错误");}}}/*计算器*/public class SwitchTest03{public static void main(String[] args){java.util.Scanner s = new java.util.Scanner(System.in);System.out.print("请输⼊第⼀个数字:");int fir = s.nextInt();System.out.print("请输⼊运算符:");String y = s.next();System.out.print("请输⼊第⼆个数字:");int sec = s.nextInt();int result = 0;switch(y){case "+" :result = fir + sec;break;case "-" :result = fir - sec;break;case "*" :result = fir * sec;break;case "/" :result = fir / sec;break;default :System.out.println("该系统不⽀持");}System.out.println("运算结果为:" + fir + y + sec + "=" + result);}}/*假设系统给定考⽣成绩,请判断考⽣的成绩等级:1、有效范围:[0~100]2、考试成绩可能带有⼩数3、考试成绩和等级之间的对照⽅式:[90-100] A[80-90) B[70-80) C[60-70) D[0-60) E4、以上采⽤switch语句完成*/public class SwitchTest04{public static void main(String[] args){java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("成绩是:");int score = s.nextInt();score /= 10;String level = "A";switch(score){case 9 : case 10 :level = "A";break;case 8 :level = "B";break;case 7 :level = "c";break;case 6 :level = "D";break;default :level = "E";break;}System.out.println("成绩等级是:" + level);}}。
MATLAB选择结构:Switch语句
MATLAB选择结构:Switch语句1. switch语句根据表达式取值不同,分别执⾏不同语句,格式为:1switch表达式2case表达式13语句组14case表达式25语句组26case表达式m7语句组m8 otherwise9语句组 n10 end1. 例:某商场对顾客购买的商品实⾏打折销售,标准如下(商品价格⽤price来表⽰):1. price<200 没有折扣2. 200<=price<500 %3折扣3. 500<=price<1000 %5折扣4. 1000<=price<2500 %8折扣5. 2500<=price<5000 %10折扣6. 5000<=price %14折扣输⼊所售商品价格,求其实际销售价格。
1 price = input ('请输⼊价格');2switch fix(price/100)3case {0,1} %价格⼩于2004 rate=0;5case {2,3,4} %价格⼤于200但⼩于5006 rate=3/100;7case num2cell(5:9) %价格⼤于500但⼩于10008 rate=5/100;9case num2cell(10:24) %价格⼤于等于1000但⼩于250010 rate=8/100;11case num2cell(25:49) %价格⼤于2500但⼩于500012 rate=10/100;13 otherwise14 rate=14/100;15 end16 price=price*(1-rate) %输出商品实际销售价格171819 %num2cell函数是将数值转化为单元矩阵,num2cell(5:9)等价于{5,6,7,8,9}。
switch选择结构执行流程
switch选择结构执行流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!Switch选择结构执行流程。
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⼤括号中的代码。
C语言程序设计 第3章 选择结构 -
如果条件满足了,就执行{}里的语句, 如果条件不满足,直接越过{}里的语句。
3.2 关系运算符与关系表达式
关系运算符
< (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)
3.2 关系运算符与关系表达式
关系表达式: 用关系运算符将两个表达式连接起来的式子
case 常量表达式2:语句2; ... default:语句n+’键向上运动,‘s’键向下运动, ‘a’键向左运动,‘d’键向右运动。
char ch = getch(); // 获得按键按下的值
switch(ch){ case 'w' : row = row - 1; case 's': row = row + 1; case 'a' : col = col - 1;
a > 60 x == 1 关系表达式的值是一个逻辑值,即“真”或“假”。
3.2 关系运算符与关系表达式
C语言中, 1表示“真”,0 表示“假”
例: 5 > 3 为真,值为1。 2 == 3 为假,值为0。 (2 > 3) == (3 > 5) 为真,值为1,
3.2 关系运算符与关系表达式
例:当按下‘w’键,方块向上运动
3.3 逻辑运算符与表达式
逻辑运算符
&& (逻辑与) || (逻辑或) ! (逻辑非) 运算规则: a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.3 逻辑运算符与表达式
逻辑表达式: 用逻辑运算符将关系表达式连接起来的 式子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例4.7 编写程序,用switch语句处理菜 单命令。
解题思路:在许多应用程序中,用菜单对 流程进行控制,例如从键盘输入一个’A’ 或’a’字符,就会执行A操作,输入一个 ’B’或’b’字符,就会执行B操作,等等。
#include <stdio.h> void action1(int x,int y) int main() { { void action1(int,int),action2(int,int); printf("x+y=%d\n",x+y); char ch; int a=15,b=23; } ch=getchar(); switch(ch) 输入a或A { case 'a': case ‘A’: action1(a,b);break; case 'b': 调用action1函数,执行A操作 case ‘B’: action2(a,b);break; default: putchar(‘\a’); } return 0; }
#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 分支选择结构
解题思路:
判断出这是一个多分支选择问题 根据百分制分数将学生成绩分为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; }
switch(表达式) { case 常量1 :语句1 case 常量2 :语句2 ┇ ┇ ┇ 不能相同 case 常量n :语句n default : 语句n+1 }
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"); }
这是一个非常简单的示意程序 实际应用中,所指定的操作可能比较复杂:
A:输入全班学生各门课的成绩 B:计算并输出每个学生各门课的平均成绩
C:计算并输出各门课的全班平均成绩
D:对全班学生的平均成绩由高到低排序并输出
可以按以上思路编写程序,把各action函数 设计成不同的功能以实现各要求
switch语句的作用是根据表达式的值, 使流程跳转到不同的语句 switch语句的一般形式:
switch(表达式) 整数类型(包括字符型) { case 常量1 :语句1 case 常量2 :语句2 ┇ ┇ ┇ case 常量n :语句n default : 语句n+1 }
switch语句的作用是根据表达式的值, 使流程跳转到不同的语句 switch语句的一般形式:
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"); }
#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; }
4.7 用switch语句实现多分支选择结构
switch语句用来实现多分支选择结构
学生成绩分类 85分以上为’A’等 70~84分为’B’等
60~69分为’C’等
……
人口统计分类
按年龄分为老、中、青、少、儿童
4.7 用switch语句实现多分支选择结构
例4.6 要求按照考试成绩的等级输出百 分制分数段,A等为85分以上,B等为 70~84分,C等为60~69分 ,D等为 60分以下 。成绩的等级由键盘输入。
#include <stdio.h> void action2(int x,int y) int main() { { void action1(int,int),action2(int,int); printf("x*y=%d\n",x*y); } char ch; int a=15,b=23; ch=getchar(); switch(ch) 输入b或B { case 'a': case ‘A’: action1(a,b);break; case 'b': 调用action2函数,执行B操作 case ‘B’: action2(a,b);break; default: putchar(‘\a’); } return 0; }
#include <stdio.h> int main() { void action1(int,int),action2(int,int); char ch; int a=15,b=23; ch=getchar(); switch(ch) 输入其他字符 { case 'a': case ‘A’: action1(a,b);break; case 'b': case ‘B’: action2(a,b);break; default: putchar(‘\a’); } 发出警告 return 0; }
#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; }
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"); }