switch 语句又是怎么回事啊?谢谢了,请求讲解
C语言中switch语句的格式是这样的
switch(表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
.....................
case 常量表达式n: 语句n
default : 语句n+1
}
它的执行流程:当表达式的值和某个case后面的语句相同时执行这个case后面的语句(并接着执行下面的语句,如果不希望接着执行下面的语句要用break语句跳出)。
下面C语言实现的你的逻辑要求(程序已调试过了):
#include "stdio.h"
main()
{
int num;
scanf("%d",&num);
switch(num)
{
case 1: putchar('A');
break;
case 2: putchar('B');
break;
case 3: putchar('C');
break;
case 4: putchar('D');
break;
default:
putchar('?');
}
printf("
");
}
希望对朋友你有帮助!
通过for循环,开始n=0,然后进入循环执行switch语句,switch(0),switch语句中的case开关中没有常量0的开关,所以执行default语句,由于没加“break;”所以会依次执行case1、case2、case3然后跳出switch语句,再次循环;
再次循环经过“n++”n=1,所以执行switch中的case1开关,由于没加“break;”所以会依次执行case2、case3然后跳出switch语句,再次循环;
再次循环经过“n++”n=2,所以执行switch中的case2开关,由于没加“break;”所以会依次执行case3然后跳出switch语句,再次循环;
再次循环经过“n++”n=3,所以执行switch中的case3开关,case3后没有任何开关或default语句,所以直接跳出switch语句,再次循环,当再次执行n++后,n<4为假,然后跳出循环,输出“s”,程序结束!
例1:
x='B';
switch(x)
{
case 'A': printf("grade is A\n");
case 'B': printf("grade is B\n");
case 'c': printf("grade is C\n");
case 'D': printf("grade is D\n");
}
结果为:grade is B
grade is C
grade is D
来看一下语句的执行过程,执行switch语句时,先计算表达式的值,然后将它逐个与case后的常量表达式的值进行比较,当switch后的表达式的值与某一个常量表达式的值一致时,程序就转到此case 后的语句开始执行,执行后,程序转到下一个case 后的语句执行;如果没有一个常量表达式的值与switch后的值一致,就执行default语句,对于这个例子,首先将'B'的值赋给x,开始执行switch语句,因为x='B',所以第一句A值不匹配,跳到下一句B,正好=x,所以执行后面的语句:打印grade is A 继续执行下一句打印:grade is C,接着执行最后一句打印:grade is D,为什么会是这样的结果呢?请看下一个例子,看它们有何区别!
例2
x='B';
switch(x)
{
case 'A': printf("grade is A\n");
case 'B': printf("grade is B\n");break;
case 'c': printf("grade is C\n");
case 'D': printf("grade is D\n");
}
结果为:grade is B
这个例子和上面的例1的唯一区别就是多了一个break语句,结果却大不相同!如果只想执行某个case后的语句,那么就要在该case 语句后使用break语句以跳出switch语句,后面的语句它将不执行了!switch语句就这么简单!需要注意的是case后的常量表达式只能是常量组成的表达式(整型、字符型),switch语句后的表达式可以是整型或字符型,也可以是枚举类型!平时应该多看书多做题,有问题请与我留言!
string str = "1";
switch(str)
{
case "1":
"这是1的条件";
break;
case "2":
"这是2的条件";
break;
...
default:
"这是默认的条件";
break;
}
switch相当于if...else if...else地用法。编程时鼓励运用switch这种。
switch语句也叫开关语句,它是多分支选择语句,每个分支、每种情况可通过一个常量表达式取不同的值来描述。
永轻甲氧: switch语句也叫开关语句,它是多分支选择语句,每个分支、每种情况可通过一个常量表达式取不同的值来描述,废话不多说!给你举几个简单的例子. 例1: x='B';switch(x) { case 'A': printf("grade is A\n"); case 'B': printf("grade is B\n"); ...
桐梓县19676914959: 请问c语言的switch语句到底是什么? - ?
永轻甲氧: C语言中,switch语句的使用格式如下:switch(表达式){ case 常量表达式1 : 语句1; break; case 常量表达式2 : 语句2; break; ...... case 常量表达式n : 语句n; break; default : 语句n+1;}举例如下:int i=4, a=0; switch(i) {case 1 : ...
桐梓县19676914959: java语言中的switch语句是什么意思?说的白话一点,别太专业了! - ?
永轻甲氧: switch是Java语句中的一个条件语句,就是一个事情满足了发生的条件就会执行一个结果,反之就会执行另一个结果.
桐梓县19676914959: 谁能讲下switch语句是怎么回事啊?
永轻甲氧: switch语句属于条件语句 switch后面的括号里面只能放int类型的值,所以放byte,short,char类型的也可以 是因为byte,short,shar可以自动提升(自动类型转换)为int 1.根据填入的这个数字,决定执行哪一个case的内容,一一对应,i是几,就执行...
桐梓县19676914959: 什么是switch语句 - ?
永轻甲氧: switch直译就是"开关" 我一般理解就是"选择"你可以理解 程序运行就像走迷宫,我们要走那条路呢?当然决定于我们"开"了那个门,"选择"了走那条路. 只是switch可供选择的"路"很多,不像if那样,只要2个选择.
桐梓县19676914959: C语言中的switch语句该怎么理解? - ?
永轻甲氧: SWITCH 语句就是一个开关 我给你举个例子吧!你是计算机,我写命令控制你!SWITCH(命令) {CASE 向左转:你向左转;BREAK;//就是执行完之后停下来,不要再做下面的命令了!如果没有这句,你就跟着执行向右转了.有了这句,你就跟着等下条命令!CASE 向右转:你向右转;BREAK; }
桐梓县19676914959: switch语句概念 - ?
永轻甲氧: 是合法的,但是这个语句没有任何实际作用啊
桐梓县19676914959: switch语句是什么? - ?
永轻甲氧: 选择分支语句 swich后面括号里的是用于选择使用哪个分支的判断值 例如你的语句中 当I=1则执行case 1 后面的语句 如i=2则执行 case 2 后面的语句 等等 (使用此语句有个特殊的地方 仅作了解 假如每个case后面没有break这个语句 那么一旦判断出程序入口 他将连同入口以及下面的程序一起执行 例如 把你的语句中break去掉 当i=1时 程序将执行case 1后面直到有break或者case语句结束的地方)
桐梓县19676914959: C#中的switch语句详解 - ?
永轻甲氧: switch 语句是一个控制语句,它通过将控制传递给其体内的一个 case 语句来处理多个选择和枚举.例如:int caseSwitch = 1; switch (caseSwitch) {case 1:Console.WriteLine("Case 1");break;case 2:Console.WriteLine("Case 2");...
桐梓县19676914959: switch语言的概念 - ?
永轻甲氧: if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且理解也比较困难.因此,C语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.使...