关于编程中所遇到的问题的一些理解
1.比较下面两段程序
(1)第一段程序
Checkbox check=(Checkbox)(e.getSource());
if(e.getLabel()=="普通")
show_style.setFont(new Font("TimesRoman",Font.PLAIN,size));
else if(e.getLabel()=="黑体")
show_style.setFont(new Font("TimesRoman",Font.BOLD,size));
else
show_style.setFont(new Font("TimesRoman",Font.ITALIC,size));
(2)第二段程序
Checkbox check=(Checkbox)(e.getSource());
if(e.getLabel()=="普通")
show_style.setFont(new Font("TimesRoman",Font.PLAIN,size));
if(e.getLabel()=="黑体")
show_style.setFont(new Font("TimesRoman",Font.BOLD,size));
if(e.getLabel()=="斜体")
show_style.setFont(new Font("TimesRoman",Font.ITALIC,size));
以上两段程序实现的功能相同,但是效率却有差异。为了方便,简化一下,根据e.getLabel()的返回值,与各段程序if比较的次数,设为∑i。
先比较第一段程序,如果e.getLabel()=="普通",需比较1次;如果e.getLabel()=="黑体",需比较2次;如果是e.getLabel()=="斜体",需比较3次。从而得到∑i=1+2+3=6。
再比较第二段程序,如果e.getLabel()=="普通",虽然第一次就匹配了,但是后面的if也要相比较,所以需比较3次;如果e.getLabel()=="黑体",需比较3次;如果是e.getLabel()=="斜体",需比较3次。此时∑i=3+3+3=9次。
很显然,第一段程序的效率要高。