作业帮 > 综合 > 作业

如何将多个条件判断语句改写成其它形式,要求运行效率高.怎样将if() else...if() else...if() e

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/17 06:19:04
如何将多个条件判断语句改写成其它形式,要求运行效率高.怎样将if() else...if() else...if() else...
怎样将if()
else()
if()
else()
if()
else()
等很多个条件判断改成更高效的,求高手指导.
我之前有采用一个方法,把CH所对应的处理函数建成一棵树,根据gets(ch)的值去判断相应的处理函数,然后执行相应的函数,可是我老大说这样也不算是很高效,所以请教高人还有没有更好的办法.
如何将多个条件判断语句改写成其它形式,要求运行效率高.怎样将if() else...if() else...if() e
qming102说的是对的
case 句型只是跳转到符合的那个块里,并不是顺序判断
if语句是顺序判断,直到有符合条件的块
你在调试程序的时候step分步执行,就能很明显的看出区别来
当然,如果判断块少,运行效率不太明显体现
大量数值运算时就会很明显,差异n倍
再问: 断点调试的时候会在每个case停留判断是否是相同的,如果不同再往下执行,这样写case语句的先后就和运行效率有关系啦,判断的条件没有高频和低频之分,是随机的,请问如何做到高效呢?
再答: 你理解的有问题,switch case 语句设置条件,只要条件验证,立刻跳转到相应块中执行相关语句。没有你所谓的判断先后问题,几个case是并列的。 你理解随机可能是认为程序不是顺序执行,一个一个块去验证?这种理解是错的。这里执行的是跳转,所以效率非常高。 希望你做一次debug就能很明确的看出来了,不要只是看书本,编程是需要大量实践的
再问: 嗯,你说得对,我刚试了下,是直接跳到对应的ch的,我的求助是不用这种结构有没有更好的办法呢?这种switch case的结构刚开始的时候我也和我们老大提过,他否决了,所以想寻找新办法,谢谢了,求指点。
再答: 刚才你没说清楚,我看了别人的回答,也许你是从一个大文本里面读数,然后调用函数,函数里面再判断执行。因为文件大或者数据多,所以调用这个函数的次数非常多,你就会觉得效率低。 最关键的是大家不知道你这个程序大概是什么状态,所以没办法回答。 你应该梳理下你人家给你的需求,画出个流程,仔细分析能不能通过修改流程减少函数的调用。这样效率就提升了。 给你说个实例,我曾经接手过一个财务结算的函数,是个刚工作的程序员写的,里面也是很多if判断,然后执行程序,每一次读取一个数据都判断,然后执行程序。运行一次需要30分钟左右,我通过画流程图,发现如果把数据流进行梳理,类似的先合并再调用函数,程序变动很小,把速度提升到20秒,就这么大的差别。 所以关键是你的业务流程,而不是用case还是if,希望你能理解,不要在细节上较真