精华内容
下载资源
问答
  • 多分支选择结构的case语句
    2022-03-19 18:37:11

    switch(表达式)

    {

    case 常量表达式1:语句 1

    case 常量表达式2:语句 2

    ..............

    .............

    ..............

    case 常量表达式n: 语句n

    default :语句n+1

    编写程序:

    #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("data error!\n");
    }
    return 0;
    }

    运行结果:

    _A_回车
    Your score:85~100(输出对应的分数段)
    

    更多相关内容
  • #include<stdio.h> int main() { char a; a = getchar(); switch(a) { case 'A': printf("85~100\n");... case 'B': printf("70~84\n");... case 'C': printf("60~69\n");... case ...
    #include<stdio.h>
    
    int main()
    {
    
    	char a;
    	a = getchar();
    
    	switch(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("error\n");
    	}
    	return 0;
    }
    

    结果为:
    在这里插入图片描述
    当取消掉第一个分支中的break时:

    #include<stdio.h>
    
    int main()
    {
    
    	char a;
    	a = getchar();
    
    	switch(a)
    	{
    		case 'A': printf("85~100\n");
    		case 'B': printf("70~84\n"); break;
    		case 'C': printf("60~69\n"); break;
    		case 'D': printf("<60\n"); break;
    		default : printf("error\n");
    	}
    	return 0;
    }
    

    结果为:
    在这里插入图片描述
    case标号只起标记的作用。在执行完switch语句时,根据switch表达式的值找到匹配的入口标号, 并不在此进行条件检查, 在执行完一个case标号后面的语句后,就从此标号开始执行下去,不再进行判断。

    这里的default后面没有加break是因为其已经到最后了,如果放在之前,后面也是需要加break的

    展开全文
  • 多分支选择结构和switch语句

     if语句仅允许在两个操作中选择,当需要在多个操作中进行选择时,可以使用switch语句。其一般形式如下:

    switch(表达式0)

    {

       case 常量表达式1: 语句1  

                  … …

       case 常量表达式i:语句i

                  … …

       case 常量表达式m:语句m

       default:             语句n

    }

      首先计算表达式0的值,如果该值和某个常量表达式i的值相同,则依次执行语句i后的语句,直到所有语句执行完或遇到break语句为止。

           如果表达式0的值不同于任何常量表达式的值,则执行语句n。

    关于switch语句强调以下几点:

    ① 常量表达式中不允许出现变量。

    ② 每个case常量表达式仅起标号/站牌的作用。另外,case与常量表达式之间要有空格。

    ③ 如果想在执行完语句i后就结束switch语句,可加上break语句来实现;最后一个分支可以不加break语句

    ④ 语句i既可以为单条语句,也可以是多条语句。即使是多条语句也无需用 { }构成复合语句。

    ⑤ default子句可省略,且可出现在任何位置。

    ⑥ 表达式要求是整型表达式。

    ⑦ 每个常量表达式通常是表达式0的可能取值之一。

    展开全文
  • switch语句多分支结构

    一、switch-case语句

    1. switch语句中的每个语句段中都使用break语句

    switch-case语句的一般形式为:

    	switch (表达式){
    		case 常量表达式1: 
    			语句段1;
    			break;
    		case 常量表达式2:
    			语句段2;
    			break;
    		...
    		case 常量表达式n:
    			语句段n;
    			break;
    		default:
    			语句段n+1;
    			break;
    	}
    

    这是switch-case语句的一般用法,即每个case语句后面配一个break语句,其执行流程图如下:

    执行流程:首先求解表达式,如果这个表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段,如果表达式的值与任何一个常量表达式的值都不行等,则执行deafult后的语句段,最后执行break语句,跳出switch语句。

    switch语句中,表达式和常量表达式的值一般是整型或者字符型,所有的常量表达式的值都不能相等。每个语句段可以包括一条或多条语句,也可以为空语句。
    switch语句中的default可以省略,省略后,当表达式的值与任何一个常量表达式都不行等时,就什么也不执行。
    注: 1、switch语句中的常量表达式必须是整型或者字符型,不能为浮点类型,否则编译器会报错。
    2、case后的必须为常量表达式,不能为关系表达式,如x>0,x==3这样的表达式是不合法的。
    3、case后的常量表达式可以为const修饰的常变量,但此时只有C99以后的标准才会支持!

    例1:查询自动售货机中商品的价格

    假设自动售货机出售4种商品:薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单(编号和选项),用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号1~4,显示相应商品的价格(保留1位小数);输入0,退出查询;输入其他编号,显示价格为0。
      [1] Select crisps
      [2] Select popcorn
      [3] Select chocolate
      [4] Select cola
      [5] Exit

    #include <stdio.h>
    
    int main(void)
    {
    	int choice, i;
    	double price;
    	
    	/*以下5行显示菜单*/
    	printf("[1] Select crisps\n");		/*查询薯片价格*/
    	printf("[2] Select popcorn\n"); 	/*查询爆米花价格*/
    	printf("[3] Select chocolate\n");	/*查询巧克力价格*/
    	printf("[4] Select cola\n");		/*查询可乐价格*/
    	printf("[0] Exit\n");				/*退出查询*/
    	
    	for (i=1; i<=5; i++){				
    		printf("Enter choice:");		
    		scanf("%d", &choice);
    		/*如果输入0,提前结束for循环*/
    		if (choice == 0)
    			break;						/*此处用break跳出for循环*/
    		/*根据输入的编号,将相应的价格赋给price*/
    		switch (choice){
    			case 1: price = 3.0; break;	/*用break跳出switch语句*/
    			case 2: price = 2.5; break;
    			case 3: price = 4.0; break;
    			case 4: price = 3.5; break;
    			default: price = 0.0; break;
    		}
    		/*输出商品的价格*/
    		printf("price = %0.1f\n", price);
    	}
    	printf("Thanks\n");					/*结束查询,谢谢用户使用*/
    	
    	return 0;
    }
    

    [1] Select crisps
    [2] Select popcorn
    [3] Select chocolate
    [4] Select cola
    [0]  Exit
    Enter choice:3
    price = 4.0
    Enter choice:2
    price = 2.5
    Enter choice:8
    price = 0.0
    Enter choice:0
    Thanks

    例2:两个数的简单计算器

    编写一个简单计算器程序,可根据输入的运算符,对两个整数进行加、减、乘、除和求余运算,请对除数为0的情况做特别处理。要求使用switch语句编写。

    #include <stdio.h>
    
    int main(void)
    {
    	int value1, value2;
    	char op;
    	
    	printf("Type in an expression:");	
    	scanf("%d%c%d", &value1, &op, &value2);
    	switch (op) {
    		case '+':
    			printf("= %d\n", value1+value2);
    			break;
    		case '-':
    			printf("= %d\n", value1-value2);
    			break;
    		case '*':
    			printf("= %d\n", value1*value2);
    			break;
    		case '/':
    			if (value2 != 0){
    				printf("= %d\n", value1/value2);
    			} else {								/*对除数为0做特殊处理*/
    				printf("Divisor can not be 0!\n");
    			}
    			break;
    		case '%':
    			if (value2 != 0){
    				printf("= %d\n", value1%value2);
    			} else {								/*对除数为0做特殊处理*/
    				printf("Divisor can not be 0!\n");	
    			}
    			break;
    		default:
    			printf("Unknown operator\n");
    			break;
    	}
    	
    	return 0;
    }
    

    Type in an expression:8%8
    = 0

    Type in an expression:-3&0
    Unknown operator

    注意: scanf()输入表达式时,数字和运算符之间不能有空格!想要兼容空格需要对空格做处理。

    2. switch语句中某些语句段使用break语句

    break语句在switch语句中是可选的,若不使用break,则其一般形式为:

    	switch (表达式){
    		case 常量表达式1:语句段1;
    		case 常量表达式2:语句段2;
    		...
    		case 常量表达式n:语句段n;
    		default: 语句段n+1;
    	}
    

    其执行流程图是上个流程图里虚框里的内容。执行过程:求解表达式后,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的所有语句段。
    其中break语句的作用是跳出switch语句,可以在case语句后按需要给其配一个break语句。根据表达式的值执行相应常量表达式后的语句后,switch语句会继续执行以下的所有程序,无论case后面的常量表达式为何值,都会按顺序执行所有的可执行的语句,直到遇到break语句才会跳出switch语句。break语句在循环中的作用也很大。

    例:统计字符

    输入一个正整数n,再输入n个字符,分别统计出其中空格或回车、数字字符和其他字符的个数。要求使用switch语句编写。

    #include <stdio.h>
    
    int main(void)
    {
    	int blank, digit, i, n, other;
    	char ch;
    	
    	blank = digit = other = 0;			/*置存放统计结果的3个变量的初值为零*/
    	printf("Enter n:");	
    	scanf("%d", &n);				
    	getchar();							/*读入并舍弃换行符*/
    	printf("Enter %d characters:", n);	
    	for (i=1; i<=n; i++){			
    		ch = getchar();	
    		/*在switch语句中灵活应用break*/
    		switch (ch){
    			case ' ':					/*语句段为空,请注意空格符的表示方式*/
    			case '\n':
    				blank++;				/*两个常量表达式' '和'\n'共用该语句段*/
    				break;					/*跳出switch语句*/
    			case '0': case '1': case '2': case '3': case '4':
    			case '5': case '6': case '7': case '8': case '9':
    				digit++;				/*10个常量表达式'0'-'9'共用该语句段*/
    				break;					/*跳出switch语句*/
    			default:
    				other++;				/*累加其他字符*/
    				break;
    		}
    	}
    	printf("blank = %d, digit = %d, other = %d\n", blank, digit, other);
    	
    	return 0;
    }
    

    Enter n:12
    Enter 12 characters:7634
    43 &*fo

    blank = 2, digit = 6, other = 4

    从该例可以看到:switch语句中case后的常量表达式可以为空,这样如果表达式的值与之相匹配,会按照顺序执行下一个语句段,即两个或多个常量表达式可以共用一个语句段。该段程序的常量表达式’ ‘和’\n’共用一个表达式;常量表达式’0’~'9’也是共用一个语句段。灵活使用break语句就可以实现一些特定的需求。
    注: 本例中也可以看出,多分支结构switch-case也可以实现,但是有时候if-else语句更有优势。例如case后面就不可以写成case ch>='0' && ch<='9'这样的形式,而用if语句就可以轻松实现!switch和if语句各有优势。

    二、多分支结构

    如前文switch-case语句可以实现多分支结构,同样嵌套的if语句也可以实现多分支结构。它的一般形式如下:

    	if (表达式1)
    		if (表达式2) 语句1;
    		else 语句2;
    	else
    		if (表达式3) 语句3
    		else 语句4;
    

    其流程图如下:

    嵌套的if-else语句,要注意其中else与if的匹配,其匹配规则是:else总是与最靠近它的、没有与别的else匹配过的if相匹配。例如:
    	if (表达式1)
    		if (表达式2) 语句1;
    	else
    		if (表达式3) 语句2;
    		else 语句3;
    

    注意:这里尽管格式上第一个else与第一个if对齐,但是第一个else仍然是与第二个if相对应的。一般来说,内嵌的if-else语句最好不要省略大括号,这样结构清晰,直观。因为大括号内的相当于一个语句。所以上式可以改写为:

    	if (表达式1){
    		if (表达式2) 语句1;
    	} else {
    		if (表达式3) 语句2;
    		else 语句3;
    	}
    

    这样可以很明显看出第一个if同第一个else相匹配。结构较清晰。
    以前的文章里所讲的级联的else-if语句同样可以实现多分支结构。https://blog.csdn.net/passxgx/article/details/123473026?spm=1001.2014.3001.5501

    三、总结

    通过上文可以看到,实现多分支结构可以使用if-else语句,或者级联的else-if结构。同样也可以使用switch-case语句,但是switch-case语句仅能是常量表达式,例如表示一些分段函数的情况下,远没有if语句方便简单。switch-case语句的优点是结构清晰,直观,可读性强。如果if-else语句嵌套过多,可读性会大大降低,相对来说级联的else-if语句直观一些,但没有switch-case结构清晰。在设计程序时要根据需要选择合适的语句来实现多分支结构。

    参考 C语言程序设计(第4版)/何钦铭,颜晖
    例题及课后习题参考程序https://gitee.com/sgxgitee/mooc-c

    展开全文
  • switch语句实现多分支选择结构

    万次阅读 2017-12-31 06:06:15
    (2)注意每个case语句中,后面都有一个break语句,该语句的作用是使得当前流程跳转到闭括号’}’后面的语句。 假如去掉程序中所有break语句,用户从键盘输入b以后,输出70~84并换行以后,程序将执行case ‘c’:...
  • 【C语言】分支语句选择结构

    千次阅读 2022-04-01 16:40:39
    【C语言】分支语句选择结构
  • 分支语句多分支结构

    2021-04-08 12:27:15
    if else分支语句 例:求两个数中的较大值 #include<stdio.h> int main() { int a = 0, b = 0, max = 0; printf("输入两个数字"); scanf("%d%d",&a, &b); if(a > b) { max = a; } else { ...
  • 用switch语句实现多分支选择结构

    千次阅读 2018-07-22 17:28:41
    switch语句 格式:  switch(表达式){  case 常量1: 语句1; break;  case 常量2: 语句2; break;  ...default: 语句n+1;...注:1、case后跟的值... 2、case标号可以共用一组执行语句。  如:case'A':  ...
  • switch语句多分支选择结构

    千次阅读 2018-09-23 12:57:33
    case 常量1 :语句1;break;  case 常量2 :语句2 ;break;  ┇ ┇ ┇  case 常量n :语句n ;break;  [default : 语句n+1;] }  2.例 #include &lt;stdio.h&gt; v...
  • 分支结构语句

    2022-05-08 14:12:42
    分支结构语句包括if语句switch语句,在switch语句中注意break语句的使用
  • switch多分支选择结构

    2021-11-19 22:27:01
    switch多分支选择结构 ▪ 根据表达式值的不同执行许多不 1.switch语句会根据表达式的值从相匹配的执行, 一直执行到break标签处开始ak语句处或者是 switch语句的末尾。与任一case值不匹配,则进入 default语句(如果...
  • switch-case语句用法

    2020-08-15 11:05:58
    if语句处理两个分支,处理个分支时需使用if-else-if结构,但如果分支较,则嵌套的if语句层就越,程序不但庞大而且理解...因此,C语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.
  • 选择结构程序设计 1.单行结构条件语句(单分支结构) If 《表.ppt
  • 一、分支语句选择结构) if语句 switch语句 二、循环结构 for循环 while循环 do while循环 if语句的3种形式 1、单分支选择结构 if(表达式) { 语句1; 语句2; ..... } 当表达式成立时(即表达式为真时)才...
  • 1. 了解并列式多分支结构 2. 掌握嵌套式多分支结构 3. 掌握延拓式多分支结构 4. 掌握开关式多分支结构
  • C语言:switch多分支语句

    千次阅读 2018-08-20 23:51:43
    switch语句多分支语句,用来实现如下表示的多分支选择结构: switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式1: 语句1; break; case ...: ....; default: brea...
  • switch-case多分支选择语法

    千次阅读 2020-09-01 17:51:03
    C语言提供的if-else和switch-case都是选择分支语句,我们先来看看一个if-else的程序测试例子: 程序运行的结果如下: ...C语言提供的switch-case语句定义如下: switch(表达式){ case 常量表达..
  • 1、switch语句格式 switch( 表达式 ) { case 常量1: 语句1; break; case 常量2: 语句2; break; case 常量3: 语句3; break; case 常量4: ...
  • 2)分支结构:编写的代码 可能 会执行 一次 3)循环结构:编写的代码 可能 会执行 分支结构 根据某个条件的真或假决定是否运行某段代码 1)单分支 if语句 if(<条件>){ //当条件为真时运行的代码 }//{}...
  • shell中的case语句详解

    2021-01-07 15:24:30
    和其它编程语言类似,Shell 也支持两种分支结构选择结构),分别是 if else 语句case in 语句。 当分支较,并且判断条件比较简单时,使用 case in 语句就比较方便了 case in 的用法基本格式如下: case ...
  • CASE 多分支语句

    2020-04-17 19:45:01
    CASE 多分支语句: –整个执行完会返回一个值,且必须使用变量进行接收 –用在某些固定选项的值的选择上 –通过SELECT 或者SET语句给某个变量赋值 –CASE –WHEN[条件表达式] THEN<一个值> –WHEN[条件表达式] ...
  • 多分支结构 4.case多分支语句 1.条件测试操作 test命令 测试表达式是否成立,若成立返回0,否则返回其他数值 格式1:test 条件表达式 格式2:[ 条件表达式 ] #前后有空格 文件测试 [ 操作符 文件或目录 ] 常用...
  • #分支结构 #if函数 IF(表达式1,表达式2,表达式3); #case结构,其中的else可省略,并且when中的所有语句都不满足,则返回null #类似于switch 语法: CASE 变量|表达式|字段 WHEN 要判断的值 THEN 返回值 WHEN 要...
  • case 分支语句的使用

    2020-05-26 15:43:12
    只不过if要判断个不同的条件而case语句只判断一个变量的不同取值。 Case语句结构 case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; 。。。。。。。。。。。。。 *) 默认命令序列...
  • switch-case开关语句1、switch-case开关语句是一种多分支选择语句,用来实现方向条件...switch-case语句可以直接处理分枝选择,使程序结构清晰、使用方便。2、switch-case开关语句的组成形式。它的一般形式如...
  • 总结了Fortran分支结构的 IF 和 SELECT CASE 的用法。
  • 在C语言中,应用条件语句 if-else 可以很方便地使程序实现两个...为了实现个条件分支选择,C语言提供了 switch case 开关语句。其一般格式如下:switch(表达式) //表达式的值只能在下面的 case 值表中出现一次...
  • Python3基础 多分支结构 if-elif-else

    千次阅读 2020-12-10 12:25:51
    基础语法及分支结构 视频地址(全部) https://edu.csdn.net/course/detail/26057 课件地址(全部) https://download.csdn.net/download/gentl ... [java基础]分支结构(2) [java基础]分支结构2 switch case /** 文件...
  • Switch语句也是分支语句的一种,常常用于多分支情况。 语法结构为: Switch(整型表达式) { 语句项; } 其中,语句项的格式为: case 整型表达式;//也是Switch的入口 语句; break;用于跳出当前所在的Switch...
  • 分支结构if语句与switch-case语句

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,030
精华内容 23,212
关键字:

多分支选择结构的case语句