c#这个代码怎么在openvswtichh的case1的里面才能输出杯子这些.

C#程序员面试试题(127道题)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C#程序员面试试题(127道题)
上传于||暂无简介
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
你可能喜欢C#里面 用switch case 语句写一个考试成绩评比程序怎么写啊,如大于90分等于优秀大于80等于良好,这样的.
个人意见:1、其实实现这样的效果大可不必用switch case语句来判断.2、直接用if语句就可实现(最简单的判断)3、如果你要对整个集体的成绩操作的话,可以用ICollectionint value="考试成绩";string valueStr="";string result="";//为输出的结果if(value>80&&value90){valueStr="value>90";};----剩下的判断可以自己加了switch(string str in valueStr){case "8090":
result="优秀";}
为您推荐:
其他类似问题
扫描下载二维码在C#下有什么好办法可以替代if-else和switch-case?
我准备研究研究用C#写一个音乐脚本解析器,解析用户的脚本并按需放出制定声音,从而生成能听的曲子。如果解析用户的脚本用了大量switch-case和if-else判断文本,据说会导致效率变得很差,整个程序可能会变慢影响输出的曲子节奏,从而带来不必要的延迟影响体验。这种情况该怎么解决?
按投票排序
不是因为“用户编写的脚本里的if-else”导致的问题吗?为什么你会觉得“C#编写的解析器”里的if-else慢?再怎么说也应该是“C#编写的解析器”里处理“用户脚本的if-else”的方式慢么。还有,Profiling,Profiling,Profiling。
一切性能问题,必须以Profiling的结论为准。我基本上可以断定你的性能问题不在于if ... else或是switch ... case。据说的可信度,尤其是性能问题的据说可信度基本接近于零。如果要把一个解析器写的像shit一样,大量不知所云的if ... else或者switch ... case或许是不可或缺的。但是这并不代表这些东西性能差,只是像shit一样的代码中出现的一些共性罢了。
if else只会乱,不会慢。
记得以前老师说过有一些编程语言是没有if else 的。 可以利用polymorphism 解决。 这样: note 作为父类并有一method 叫play。 每个音符如a,b,c… , 都继承note 并各实现不同的play 。 播放的时候,循环曲目中的note 列,只要都call play 就可以不用if else了。当然interface 也是可以的。更多请看wiki。
你觉得计算机判断if else这种语句会成为性能瓶颈?
保持 音频文件的文件名 和 脚本中的音符名 一致。例:文件名1.MP3(Do)2.MP3(Re)3.MP3(Mi)4.MP3(Fa)
if/else和switch/case本身不会对性能有太多影响,除非你用的实在太多如果要避免这种判断的话,最好的办法是在执行前直接生成决策树,然后直接调用,而不是在执行时通过条件临时判断。可以考虑的方法有预处理,SOLID中的L,还有上边说的通过HashTable调用预先做好的流程。但是实际上,大多数情况下,if/else和case/switch基本都不可能是你的瓶颈所在吧
too naive,你写1亿个switch再来说性能瓶颈吧
简单的if else可以用三元运算代替
Dictionary + lambda但是对于这种托管的语言,我觉得if else或者switch都不会是瓶颈的,因为你编译得到的不是最终执行的代码,虚拟机还可以运行时优化
已有帐号?
无法登录?
社交帐号登录switch 里面的case 分支是从上往下一个个判断的么,该怎么处理 - C#当前位置:& &&&switch 里面的case 分支是从上往下一个个判断的么,switch 里面的case 分支是从上往下一个个判断的么,该怎么处理&&网友分享于:&&浏览:12次switch 里面的case 分支是从上往下一个个判断的么我看了一下中间语言,他是把所有的case的变量集中起来,然后判断是否跟某个变量相等,如果相等,就转到相应的处理但是这个判断也是从上往下比较是不是和这些变量相等的把,那和if else按顺序判断不是一样的么。vs里面case加不了断点,f11就直接进入到分支了,但是实际上,是不是从上往下case都判断过呢------解决方案--------------------我也感觉是这样的,因为中间语言看了好像是这样,只不过是switch形成了一个中间表的样子,但是用那个变量值和表中的值比较的时候 好像也是从上往下比较的吧=========================================你要明白什么是hash表,什么是内存寻址 就不会这么认为了。 基址+偏移量。也就是说就算他是生成了一个中间表他一不会去全体扫描,他只会直接算出偏移量,然后直接跳转过去就ok
------解决方案--------------------探讨1.1楼的回复是告诉你,有些事情其实没必要追究,我们根本关心“回”字到滴有多少种写法,那是“站着穿长衫的人”才会研究的。2.swich做为一个基本流程控制语法,甚至在世界上第一个女程序员时代就已经被建立,如果这玩意到现在还有啥问题,那么这100年程序员们都在干啥呢?3.你做个简单实验,你在swich里面做两个的分支。
case 1:……
------解决方案--------------------探讨嘿嘿,好像说道点子上了,“他只会直接算出偏移量?” 这个偏移量他咋计算的呢。或者说我这问题问的太菜鸟了,能不能 给个相关的关键词,我百度搜索相关的文章,好好普及一下,再来请教?谢谢!
------解决方案--------------------逻辑上是从上向下顺序查找的,楼主钻研的精神可嘉
------解决方案--------------------探讨引用:引用:嘿嘿,好像说道点子上了,“他只会直接算出偏移量?” 这个偏移量他咋计算的呢。或者说我这问题问的太菜鸟了,能不能 给个相关的关键词,我百度搜索相关的文章,好好普及一下,再来请教?谢谢!这个不是很好用文字表达,hash表的存储方式并不是使用连续内存存储,他是使用基地址+偏移量存储比 1,3,5 相当于下面的表述……
------解决方案--------------------还是深了,不赞同lz这样做,但是精神无疑是好的。如果是我的话,我肯定是先解决吃饭问题,然后在解决吃什么的问题,最后在讨论为什么吃这些东西的问题。
------解决方案--------------------
可以看看stackoverflow上关于这个讨论/questions/3366376/are-net-switch-statements-hashed-or-indexed我说一下我的理解。首先不像C/C++一样,C#的switch除了支持数字,还支持字符串类型。字符串比较简单,先说字符串,如果case个数较少的话,C#会用if else这样的方式来实现,就像41楼列出来的一样,从前往后一个个比较;如果个数较多的话(我也不知道具体多少算多),C#会new一个Dictionary来实现快速查找,Dictionary基本上就是一个hashtable,把字符串映射到一些连续的数字上(注意,是连续的,这很重要,并不是简单的GetHashCode返回的乱七八糟的数字),然后再switch这个数字。再说数字的,数字的也要分情况,如果那些case里的数字是离散的,那C#也是会用if else来实现;如果是一串连续的数字,像1,2,3,这时候就会用il里定义的switch指令 ,像这样 switch( IL_0229, IL_0239, IL_0249),这三个行号放在一块叫跳转表(jump table), 这个switch指令的执行我猜是这样的(我没看过il的教程,纯粹是猜测),判断当前寄存器里的值,如果值为0,那么跳转到IL_0229这行,如果值为1,则跳转到IL_0239,2则跳IL_0249。这个动作是O(1)的,不需要一个一个判断。注意这里寄存器里的值是连续的,只能从0往上加,如果你case的第一个不是0,编译器会先做一些四则运算把它变成0,就像1,2,3的话减去1就可以了。 如果你给的case里又有连续又有离散的呢,比方说我有4个值,1,2,3,100,这时候我发现编译器会先if else一下是不是100,如果不是的话剩下那1,2,3又可以switch了,反正这个是考验编译器智商的了,尽可能的优化。如果你还想问il里的switch到底是怎么实现o(1)的跳转的,可以看一下编译成x86后的代码,类似于这行,jmp dword ptr [eax*4+002B2878h]& 至于vs里f11单步不到中间的判断过程(即使是开启显示汇编),我觉得是vs考虑到大多数人没有想要看那些中间过程,而是想直接知道跳到哪个case了,所以把这个过程有意隐藏了
------解决方案--------------------建议到80X86
微机原理上看看,我以前看到过,好像是跳转的,不是逐条的
------解决方案--------------------mark晚上回去想想。 “47”楼应该接近答案了。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 php swtich 的文章

 

随机推荐