微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 对于Android事件,为什么switch语句比if-else链更常见?

开发 Android时,switch语句比if-else链更有效吗? switch语句需要更多行代码,但查看轶事证据似乎是Android应用程序中更常用的.

下面的示例说明了具有case语句和if-else链的相同编程结构. switch语句需要10行,而if-else链需要7行.

案例陈述

public void onClickWithSwitch(View v) {
   switch(v.getId()) {
       case R.id.buttonA:
           buttonA();
           break;
       case R.id.buttonB:
           buttonB();
           break;
       case R.id.buttonC:
           buttonC();
   }
}

如果 – 其他链

public void onClickWithIf(View v) {
   int id = v.getId();
   if(id == R.id.buttonA)
       buttonA();
   else if (id == R.id.buttonB)
       buttonB();
   else if (id == R.id.buttonC)
       buttonC();
}

为什么切换比if-else链更常见?与if-else链相比,switch语句提供更好的性能吗?

解决方法

语言具有switch语句的原因是允许编译器生成跳转表,如果它很大,则跳转表很快,因为在运行时它可以在O(1)而不是O(N)时间内获得所需的代码.

如果有很多情况并且在每种情况下执行的代码不需要花费很多时间,那么它在速度方面是有用的,并且程序在这代码中花费了很多时间.

除此之外,它纯粹是一种品味问题.

代码行数和速度之间没有关系.重要的是生成的汇编语言代码,我鼓励您熟悉它.

原文地址:https://www.jb51.cc/android/127951.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐