一个关于二级C语言switch语句的问题

原题如下:Aswitch(x+y){case10:u=x+y;break;case11:w=x-y;break;}Bswitchx{default:u=x+y;case1... 原题如下:
A switch(x+y)
{
case 10: u=x+y; break;
case 11:w=x-y; break ;
}
B switch x
{
default : u=x+y;
case10 : w=x-y; break;
case11 : u=x*y; break;
}
C switch (x*x+y*y)
{
case 3:
case3 : w=x+y; break;
case0 : w=y-x; break;
}
D switch (pow(x,2)+pow(y,2))
{
case1:case3: w=x+y; break;
case0:case5: w=x-y;
}
答案是A,我有几点不明白:
1 switch 语句可以没有default吗?什么情况下可以没有?
2 为什么有的switch语句没有break,如果没有break,switch语句可以停止吗?
3 C选项case3:后面什么也没有了,这对吗?
4 D选项case1:case3: w=x+y; break;
case0:case5: w=x-y;
为什么出现case1:case3两个呢?该怎样解决?
问题挺多,我都不怎么明白,高手不吝赐教,辛苦一下吧!
展开
 我来答
zbj5599042
2010-08-15 · TA获得超过231个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:122万
展开全部
1 C语言中switch语句可以没有default
2 首先,switch中的语句裤世可以没有break;如果当前语句没有胡猜肢break,那么程序将在接下兆码去第一个有break的语句时停止
3 case翻译是情况的意思 case 3:后面什么也没有是对的,但出现2次case 3就错了,因为每一种情况是唯一的。
4 不知道
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
允瀚文0HX
2023-06-19 · 超过26用户采纳过TA的回答
知道答主
回答量:290
采纳率:47%
帮助的人:14.7万
展开全部

关于你提到的几点问题,我一个告历衫个来回答:

  • switch 语句可以没有 default,这在语法上是被允许的。但需要注意的是,如果没有 default,那么就意味着程序中没有为 switch 语句所有可能的 case 情况下提供相应的处理代码。在大多数情况下,为了确保程序的完整性和健壮性,建议在 switch 语句中添加 default 语句,以便处理所有可能的 case 情况。

  • switch 语句中的 break 语句是用来终止 switch 语句的执行的。如果没有 break 语句,那么程序将会继续执行下一个 case 中的代码,直到遇到 break 或者 switch 语句结袜腔束烂搏为止。因此,如果没有 break 语句,switch 语句就不能够停止,而是会继续执行下去,直到遇到 break 或者 switch 语句结束为止。

  • C 选项中的 case 3:后面没有代码是正确的,因为在这个 switch 语句中,case 3 只是一个空的 case,没有需要执行的代码。这种空的 case 在某些情况下是有用的,比如可以用来占位或者将来扩展代码使用。

  • D 选项中的 case 1:case 3 是因为 case 1 和 case 3 的值相同,都是 1。在这种情况下,可以将两个 case 合并在一起,用逗号分隔开它们的值。这样做的目的是让程序在执行switch 语句时,如果找到了匹配的 case,就会执行相应的代码块,而不需要再判断是否与下一个 case 的值相同。

解决这个问题的方法是将 case 1 和 case 3 分开放置,或者使用其他的逻辑结构来处理不同的情况。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式