关于switch语句的使用问题,关于C语言问题中switch语句的使用问题

2020-12-09 09:52:45 字数 5928 阅读 3783

1楼:下海的孤魂

switch结构里少了default语句。

应该如下这样,所有case完成后,最下面加上一个default。

以后请教大家时,出错信息里把行数也拷贝上来,可以更快地看出问题出在**。比如“warning c4060。。。”之前,应该还有出错的行数信息的。

switch( (int)a/10 )

2楼:百奇一家

case 9:b='a';break;

case 8:b='b';break;

这是你出错的两句,我试了,可以运行

关于c语言问题中switch语句的使用问题

3楼:匿名用户

#include

voidmain()

printf("\n");

return;

}差不多就这样

4楼:

你需要进行相应的assiic码值计算,x在输出前进行加64计算就可以了;

5楼:匿名用户

case 1: 改成 case a:

然后建议你switch里面最好加个default

switch(x)

6楼:晓破苍穹

#include

intmain()

return0;}

7楼:匿名用户

#include

int main()}}

8楼:歌梦复兴

case 1:改成case '1':,你这个1是int型,你怎么能switch的到?scanf("%d\n",&x);

改成scanf("%c\n",&x);

有关switch语句中的几个问题?

9楼:匿名用户

case本身不要求一定按照顺序排列,default后面还有case也是可以的,只要序号能对上,程序就会执行

case 0:

default;

case 2:a=5;

case 1:这样也是可以的,但是为了阅读方便,所以一般都是按照序号排列,default放到最后一句

先明确一点,switch是循环的一种,所以break是中断循环的操作,而你的这个例子中因为没有break语句,所以程序不会跳出switch,而是会默认执行下一条语句,这也是为什么default语句一般都放在最后的原因

switch=0

程序执行case 0:,因为没有break,所以自动执行下一条程序执行case 1:,同样因为没有break,所以自动执行下一条程序执行case 2:

a=5;这里也没有break,但这是switch的最后一句,所以程序会从第一句一直执行到这里才跳出switch循环

10楼:匿名用户

switch语句,里面每个case(包括default),是并列的,执行时会挨个找每个case(包括default),找到对应的值,就找到了一个入口,依次往下执行,除非碰到break;eg:1.switch(3)//输出342.

switch(3)//输出34default3.switch(5)//输出default34

11楼:匿名用户

你说的是java中的switch吗? 无论case在default前面还是后面. default中的语句总是在所有case都不匹配的情况下才执行的.

这个例子.c#是无法通过编译的.,.

按java的思路是先匹配0,满足条件.因为没有break跳出. 所以继续执行case 1,又因为没有break.

继续执行case2. 一直到遇到break为止.

12楼:匿名用户

找到匹配的条件,执行完就会跳出。 是0的话,执行完0内的操作就会退出

关于switch语句的问题

13楼:

第一个switch语句不能接受浮点型的参数

第二个和三个应该都是对的吧,不过要记的加break哦。

14楼:匿名用户

switch 需要整形数据

后面两个应该是对的

另外每个case后面应该要有break

15楼:匿名用户

switch必须是整型,不能是浮点型

关于switch case语句的用法的练习题

16楼:中公教育

switch语句的用法详解

c语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:

switch(表达式)

12345678

其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。

如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

main()

}1234567891011121314151617

本程序是要求输入一个数字,输出一个英文单词。但是当输入4之后,却执行了case4以及以后的所有语句,输出了wednesday及以后的所有单词。这当然是不希望的。

为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。

这是与前面介绍的if语句完全不同的,应特别注意。

为了避免上述情况,c语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

switch 的分支语句一共有 n+1 种,而我们通常希望的都是选择其中的一个分支来执行,执行完后就结束整个 switch 语句,而继续执行 switch后面的语句,此时就可以通过在每个分支后加上 break 语句来实现了。如下:

switch (表达式)

12345678

加了这个 break 语句后,一旦“常量表达式 x”与“表达式”的值相等了,那么就执行“语句 x”,执行完毕后,由于有了 break 则直接跳出 switch 语句,继续执行 switch 语句后面的程序了,这样就可以避免执行不必要的语句。把上面改成下面

main()

}1234567891011121314151617

在使用switch语句时还应注意以下几点:

在case后的各常量表达式的值不能相同,否则会出现错误。

在case后,允许有多个语句,可以不用{}括起来。

各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

default子句可以省略不用。

有关switch语句的问题

17楼:匿名用户

楼上回答有误,如果default放在第一排,那会直接执行default。

18楼:

照样执行default语句后的语句序列.

switch 语句 是一个多通道开关,无论 default 放在 何处,都要按次序检查 case 语句,case 全没通过,才走 default。满足 case 条件的地方,就是一个入口,遇break才跳出switch。遇不到break,不会跳出。

int s=2;

switch(s)

s=1 打出 11

s=2 打出 2211

s=3 打出 dd

-----------------

int s=2;

switch(s)

s=1 打出 11

s=2 打出 22dd

s=3 打出 dd

19楼:手机用户

你的问题有二:1、a,i变量重名

2、未输入字符。下面是改正后的程序。

#include

int main()

for(i=0;a[i]!='#';i++) }sumcount=acount+ecount+icount+ocount+ucount;

cout<>i;

return 0;}

java练习题,关于switch语句问题.

20楼:匿名用户

使用java的switch语句要注意每个case后面有一个break;否则会发生switch穿透现象。你的**里面一个break都没有

,所以会依次向下执行,直到最后。如果default放到最后的话,里面没有返回语句,和你方法的声明不相符合,所以语法错误。

你可以在default:后面加上return null,应该就行了

c语言关于switch语句的问题

21楼:匿名用户

因为c语言设计的时候,为了灵活性,switch的语法是反人性的,一个分支不加break的话,是不会自己跳出来的。这个跟想象中的分支的含义不太一样。

这种语法的目的,仅仅是类似这种:

case ’a‘:

case 'b': do something; break;

表示条件 a 或者 b 其中任何一个成立,就执行,语言的实现方便。

按照正常人喜欢的逻辑,最好能这么写:

case 'a' || 'b' : do something; // 然后不用写break

不过这样就不是c语言了

我完全理解lz发这个问题的心情,要学就继续忍受,比这郁闷的坑多着

22楼:匿名用户

switch语句中 default要放在最后 否则会导致错误还有如果不是特殊需要,每个case也最好加个break否则一定条件下也会出错

#include

#include

int main(int argc, char *argv)system("pause");

return 0;}

23楼:匿名用户

default: printf ("error"); break;

case'a':

case'b':printf("good"); break;

case'c':printf("pass"); break;

case'd':printf("warn"); break;

switch(n--),实际上还是

swith(n)

你的程序与n的值无关;程序顺序执行,执行完default之后,接着执行case 'a':case 'b':然后执行case'b'中的break;跳出。

为什么会不明白呢?我也不明白。

程序是按顺序向下执行的懂吧。

24楼:匿名用户

这个问题涉及到两方面:标号和减减问题。

switch(n--);

这条语句中,switch根据括号中的值跳转到相应的标号位置,括号中可以使表达式也可以是变量等,那么看看n--这个表达式n初值为e,减减之后,n值变为d,但是n--这个表达式的值为e,因为它先赋值后减减;

这时就跳转到default标号处,打印出error,然后程序顺序向下执行,直到遇到break,continue或者goto等改变程序执行顺序的语句后改变;

程序继续执行,就打印出了good,碰到break,跳出,程序结束。

25楼:veket的小号

--在后 先用 后减

故先用n的值 'e'从而进入default 分支 没有break 顺序进 case 'a'分支..............

关于switch的一些问题,关于switch case语句的问题

1楼 匿名用户 和你的账号有关,只要是新的账号开游戏就是从头开始,一台switch可以登录多个不同服的账号。 关于switch case语句的问题 2楼 确实不行。编译器报错 case label does not reduce to an integer constant 如果硬要用switch ...

c语言for语句中内嵌if"语句的问题

1楼 匿名用户 为满足要求,可修改 如下 include void main else 在vc6下验证通过,与题目 效果一致,如下图 供参考。 2楼 d任意表达式 请采纳。。。。 c语言高手解答 for 语句中嵌套if 如何执行 3楼 拜朋儿 for else for 语句是循环,if是循环里的语句...

关于古琴弹奏的护指问题,关于古琴演奏中麦克风如何使用的问题

1楼 匿名用户 古琴演奏不需要护指 拨片 义甲等工具,就用自己的真指甲。 左手不用留 右手指甲只要稍微超过指尖就行,手指尖较尖的可以留短一些,手指尖较钝或较圆的可稍留长一点。 用抹 勾 托 打等指法时,若指甲过长,会有类似 piapia 的指甲声音,若指甲过短,则音色发闷,两种情况音色都不好,所以指...