请问case和verilog case defaultt的顺序真不影响执行结果么?在右边这个,当取a为6时,是先走verilog case default

下面这道题应该选A还是C设整形变量a的值是6,执行下列语句后a的值是switch(a%2){case 0:a-=2;case1:a+=1;default:a=6;}A.4 B.5 C.6 D.7_百度作业帮
下面这道题应该选A还是C设整形变量a的值是6,执行下列语句后a的值是switch(a%2){case 0:a-=2;case1:a+=1;default:a=6;}A.4 B.5 C.6 D.7
下面这道题应该选A还是C设整形变量a的值是6,执行下列语句后a的值是switch(a%2){case 0:a-=2;case1:a+=1;default:a=6;}A.4 B.5 C.6 D.7
答案是6,case 0;case 1;都执行,最后a=6;如果在每个case加个break:就不一样了&&/&&&&/&&&&/&&
不!但是为了进行错误检查或逻辑检查,还是应该在switch语句中加入default分支。
例如,下述switch语句完全合法:
switch (char_code)
&&&&& case tyt:
&&&&& case 'y': printf ( & You answered YES ! \n& )
&&&&&&&&&& break
&&&&& case 'N':
&&&&& case 'n': printf (&You answered NO!\n&);
&&&&&&&&&& break
但是,如果一个未知字符被传递给这条switch语句,会出现什么情况呢?这时,程序将没有任何输出。因此,最好还是加入一个default分支,以处理这种情况:
default: printf (&Unknown response : %d\n&, char_code);
&&&&&&&&& break
此外,default分支能给逻辑检查带来很多方便。例如,如果用switch语句来处理数目固定的条件,而且认为这些条件之外的值都属于逻辑错误,那么可以加入一个default分支来辨识逻辑错误。
请看下列:
void move_cursor (int direction)
&&&& switch (direction)
&&&&&&&&&& case UP:&&&& cursor_up()
&&&&&&&&&&&&&&&&&&&&&&&&&&& break
&&&&&&&&&& case DOWN:&& cursor_down()
&&&&&&&&&&&&&&&&&&&&&&&&&&& break
&&&&&&&&&& case LEFT:&& cursor_left ()
&&&&&&&&&&&&&&&&&&&&&&&&&&& break
&&&&&&&&&& case RIGHT:& cursor_ right ( )
&&&&&&&&&&&&&&&&&&&&&&&&&&&& break
&&&&&&&&&& default:&&&& printf (&Logic error on line number %ld!!! \n&,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& __ LINE__ )
&&&&&&&&&&&&&&&&&&&&&&&&&&&& break
请参见:&&&
1、什么时候用一条switch语句比用多条if语句更好?
2、Switch语句的最后一个分支可以不要break语句吗?
微信公众号:
各位粉丝,大家好,我是C语言中文网的站长(可以了解我),C语言中文网已经开通了微信公众号,名字是「码农宿舍」(不是C语言中文网哦),我将在这里和大家交流编程知识以及工作经验。大家可以搜索名字「码农宿舍」关注,也可以用微信扫描右边的二维码关注。
当你决定关注「码农宿舍」,你已然超越了99%的程序员!
推荐文章 TOP10当前访客身份:游客 [
积跬步,至千里!!!!
:为什么手动切换一个page后才显示PagerTitleStrip...
:引用来自“算你狠”的评论 Context mContext=nul...
:Context mContext= public FlectionView(Co...
:怎么都没有R.layout.tab1 tab1
:多谢1楼提示
:非常感谢! 今天刚看pull解析搞不太懂,现在看完...
:引用来自“leeyongchao”的评论不是判断中断了吗...
:不是判断中断了吗,为什么会打印异常呢?
:很好的教程,学习了
今日访问:162
昨日访问:342
本周访问:4305
本月访问:14044
所有访问:141353
java中switch语句中的defaul条件的位置
发表于6个月前( 22:09)&&
阅读(70)&|&评论()
0人收藏此文章,
&& 在java中switch语句中,每个case分支就是一个入口,如果都没有满足条件,那么将会走到default分支中。那么这个default分支的位置会不会影响到执行的流程呢?
package&com.app.
import&java.util.S
&*&Created&by&charles&on&.
public&class&SwitchTest&{
&&&&public&static&void&main(String[]&args){
&&&&&&&&System.out.print("enter&a&digital&number:");
&&&&&&&&Scanner&scanner&=&new&Scanner(System.in);
&&&&&&&&int&number&=&scanner.nextInt();
&&&&&&&&switch(number){
&&&&&&&&&&&&default:
&&&&&&&&&&&&&&&&System.out.println("default");
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&case&1:
&&&&&&&&&&&&&&&&System.out.println("1");
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&case&2:
&&&&&&&&&&&&&&&&System.out.println("2");
&&&&&&&&&&&&case&3:
&&&&&&&&&&&&&&&&System.out.println("3");
&&&&&&&&&&&&case&4:
&&&&&&&&&&&&&&&&System.out.println("4");
测试条件:5
执行结果:default
说明如果case语句都没有匹配到的情况下,defualt的语句的位置不会影响流程。
测试条件:2
执行结果:2 3 4
说明从case语句入口进入之后,语句的流程就会顺序向下执行,不会执行到default语句。所以default语句应该放到最后书写,不然有可能不会执行到。 测试jdk: 1.7
更多开发者职位上
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读c语言中swich的用法
c语言中swich的用法
貌似是这个啊& 和if& if else&&&&& if& else if&&& 作用相似的那个选择语句 麻烦哪位高人给敲一段代码 顺便加上注释 谢谢
应该是switch吧!
我举个C++的例子,你按主函数操作:
#include &iostream&
int main()
cout&&"请输入一个整数:";
switch(a)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&对变量a进行判断。
case 0:cout&&"你输入的数为0";&&&&&&&&& case 变量与switch相同时输出对应语句
case 1:cout&&"你输入的数为1";
case 2:cout&&"你输入的数为2";
case 3:cout&&"你输入的数为3";
default:cout&&"你输入的不是0~3的整数";&&&&&&&&&& 若case与switch不同,执行defaule后语句,
cout&&"\n程序结束";
switch(c)& {&& case 1:&&//1表示c等于1的时候执行&&&&&&&&&&&&&& default:printf("请在1-6中输入选择\n");&&&&&&&
&& case 2://2表示c等于1的时候执行&&&&&&&&&&&&&& default:printf("请在1-6中输入选择\n");&&&&&&&
&& case 3://3表示c等于1的时候执行&&&&&&&&&&&&&& default:printf("请在1-6中输入选择\n");&&&&&&&&&&&& }
switc 结合 case 就是这样和if else 的作用一样,不过多判断的时候推荐这个
其他回答 (2)
#include&iostream.h&void main(){ cout&&"请输入车型"&& cin&& cout&&"请输入路程"&& cin&& switch(chexing)//switch对输入的chexing变量进行判断. { case'夏利'://第一种情况& cout&&"你乘坐的是"&&chexing&&","&&"路费为:"&&7+(lucheng-3)*2.1&&&//每个case后要有一个break跳出switch case'富康':& cout&&"你乘坐的是"&&chexing&&","&&"路费为:"&&8+(lucheng-3)*2.4&&& case'桑塔拉':& cout&&"你乘坐的是"&&chexing&&","&&"路费为:"&&9+(lucheng-3)*2.7&&& default:& cout&&"输入错误"&& }}
if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且理解也比较困难.因此,C语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.使用switch语句直接处理多个分支(当然包括两个分支).其一般形式为:
引用 switch(表达式){ &&&&& case 常量表达式1:&&&&&&&& 语句1;&&&&&&&&&& &&&&& case 常量表达式2:&&&&&&&& 语句2;&&&&&
……&&&&& case 常量表达式n:&&&&&&&& 语句n;&&&&&
&&&&& default:&&&&&&&& 语句n+1;&&&&&}switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句.如下程序,可以根据输入的考试成绩的等级,输出百分制分数段:
引用 switch(grade){ &&& case 'A': /*注意,这里是冒号:并不是分号;*/&&&&&& printf("85-100\n");&&& /*每一个case语句后都要跟一个break用来退出switch语句*/&&& case 'B': /*每一个case后的常量表达式必须是不同的值以保证分支的唯一性*/&&&&&& printf("70-84\n");&&&&&& case 'C':&&&&&& printf("60-69\n");&&&&&& case 'D':&&&&&& printf("&60\n");&&&&&& default:&&&&&& printf("error!\n");} (2) 如果在case后面包含多条执行语句时,也不需要像if语句那样加大括号,进入某个case后,会自动顺序执行本case后面的所有执行语句.如:
引用 { &&& case 'A':&&&& if(grade&=100)&&&&&& printf("85-100\n");&&&& else&&&&&& printf("error\n");&&&…… (3) default总是放在最后,这时default后不需要break语句.并且,default部分也不是必须的,如果没有这一部分,当switch后面圆括号中表达式的值与所有case后面的常量表达式的值都不相等时,则不执行任何一个分支直接退出switch语句.此时,switch语句相当于一个空语句.例如,将上面例子中switch语句中的default部分去掉,则当输入的字符不是"A","B","C"或"D"时,此switch语句中的任何一条语句也不被执行.
(4) 在switch-case语句中,多个case可以共用一条执行语句,如:
引用 ……case 'A':case 'B':case 'c':printf("&60\n");…… 在A,B,C3种情况下,均执行相同的语句,即输出"&60".
(5) 最开始那个例子中,如果把每个case后的break删除掉,则当greak='A'时,程序从printf("85-100\n")开始执行,输出结果为:
引用 85-10070-8460-69&60error 这是因为case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即"只是开始执行处的入口标号".因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行,而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不在判断是否与之匹配,直到遇到break语句才停止执行,退出break语句.因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句.
引用 main() /*完成两个数简单的四则运算*/{ && float a,b;&& char c1;&& printf("Please enter a,b and op:");&& scanf("%f%c%f",&a,&c1,&b);&& switch(c1)&& { &&&&& case '+':&&&&&&& printf("%f+%f=%f\n",a,b,a+b);&&&&&&&&&& case '-':&&&&&&& printf("%f-%f=%f\n",a,b,a-b);&&&&&&&&&& case '*':&&&&&&& printf("%f*%f=%f\n",a,b,a*b);&&&&&&&&&& case '/':&&&&&&& if(b!=0.0) /*分母不能等于0*/&&&&&&&&& printf("%f/%f=%f\n",a,b,a/b);&&&&&&& else&&&&&&& printf("error!\n");&&&&&&&&&& default:&&&&&&& printf("error!\n");&&&&&&& }}
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号}

我要回帖

更多关于 java case default 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信