以前听同学说if...else的优化,不是很懂。哪位大虾讲讲啊?

解决方案 »

  1.   

    是不是这个意思啊?if (条件1){
    if (条件2){
    语句1;
    }
    }
    优化成
    if ((条件1) && (条件2)){
    语句1;
    }
      

  2.   

    要有具体的代码才能优化吧单单一个if/else块还优化个啥?
      

  3.   


    不对不对 应该是
    if ((条件1) & (条件2)){
    语句1;
    }

    if ((条件1) && (条件2)){
    语句1;
    }
      

  4.   

    &&的两边条件, 如果条件1是否  那么就不会去看条件2是真还是假
    &的两边条件是都要去判断  然后在做运算得出1或0不知道这算不算是优化啊...
      

  5.   

    &的两边条件是都要去判断  然后在做运算得出1或0 那(&)是不是和(||)是一样的作用???新人 只知道&&是并且的意思,||是或者的意思。楼上看到的话给说下,谢谢!
      

  6.   

    结合数据结构..让可能性大的尽量先做判断.比如一个班级的分数. 最多的可能集中在80几分..然后你要判断并且做打印.那你就先判断80~90的人.然后判断70~80的人.这样.大部分人只在 第一次判断就 有了归宿.  优化了整个if else语句.
      

  7.   

    在用if ...else 时,最好用
    if(条件){
    .....
    }
    else if(条件){
    }
    ....
    else{
    ....
    }无论{
    .....
    }中是一条语句还是多条,最好用{  }把这些语句括起来,
    个人认为这在java中这样做可以增加代码的可读性,是一种好的编程习惯.
      

  8.   

    No, I mean a && b, if a = 0, the value of b will not be judged, because a && b = 1, just only when a = 1 and b = 1. but a & b, the value of a and b will all be judged. So it looks a little slow. 
    I am sorry I have no Chinese environment in company.
      

  9.   

    所有的优化都是要结合实际环境的.不同的情况有不同的优化策略.假如说策略A无论在任何情况都比B好,那B就不可能生存了.所以楼主这种问法,是没有答案的.
      

  10.   

    &&和||采用的是断路判断
    断路判断是从条件链的第一个开始执行,在首先找到判断不合法的位置断开,而不判断后继条件
    举个例子String a = null;
    if(a != null && a.equals("aaa")) ********;这里的判断顺序是,首先判断a != null,如果a != null判断失败,就直接返回false,而不会后继判断a.equals("aaa")尝试一下这段代码        int a = 0;

    if(a != 0 && ++a == 2) 
    System.out.println("in if case : a = " + a);

    System.out.println("when out   a = " + a);

    System.out.println("******************");

    a = 1;

    if(a != 0 && ++a == 2) 
    System.out.println("in if case : a = " + a);

    System.out.println("when out   a = " + a);