首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个SCJP的题目

2012-01-01 
请教一个SCJP的题目.publicclassBoolArray{boolean[]bnewboolean[3]intcount0voidset(boolean[]x,inti

请教一个SCJP的题目.
public   class   BoolArray   {

        boolean   []   b   =   new   boolean[3];
        int   count   =   0;
       
        void   set(boolean   []   x,int   i){
        x[i]   =   true;
        ++count;
        }
        public   static   void   main(String[]   args){
        BoolArray   ba   =   new   BoolArray();
        ba.set(ba.b,0);
        ba.set(ba.b,2);
        ba.test();
        }
        void   test(){
        if   (b[0]&&b[1]|b[2]){
        count++;
        }
        if(b[1]&&b[(++count   -   2)]){
          count   +=   7;                
          }
        System.out.println( "count   =     "+   count);
        }
}
在这个程序中的这句话:
        if(b[1]&&b[(++count   -   2)])
  由于   &&是一个短路语句,即判断了b[1]之后,若b[i]是为FALSE
就不用判断后面的b[(++count   -   2)]
而我感觉[(++count   -   2)]的优先级比&&高,为什么不是先把[(++count   -   2)]算了以后再,算   &&   短路语句。
它是答案是   3   ,运行也是   3   .


[解决办法]
呵呵 LZ 想多了 下面的不会执行了
就没有优先级的问题了

你讲怎么优先


[解决办法]
++count && false 这样写++才是优先。

false && b[(++count - 2)] 这样显然后面不计算。

热点排行