class Test_one{
    public static void main(String[] args){
int a=2;
int b=1;
for(int c=0; c<5; c++){
    if(( ++a>2 )&&(++b>2)){
a++;
    }
}
System.out.println("a="+a +" b="+b);
    }
}
看看输出什么?

解决方案 »

  1.   

      这题目本身是考你对 i++,++i 的了解
      i++ 的值是i   ++i的值是 i+1
      知道这些就很好做了 
      a=11 b=6
      

  2.   

    if(++a > 2) //a先自加 既3 > 2 true
     (++b > 2) //既是 2 > 2 false
    所以循环条件不成立,不执行a++,第一次循环后a=3, b=2
    第二次后 a=4,b=3, if条件成立 a++,所以a=5,b=3
    第三次 a=7,b=4
    第四次 a=9,b=5
    第五次 a=11,b=6
    打印。
      

  3.   

    a=7,b=2
    a的5次循环中自增5次,b自增1次,但因为5次循环都不满足if条件,所以if里的代码没执行到
      

  4.   

    if(( ++a>2 )&&(++b>2))&&应该有优化吧 如果++a>2为false的话,++b是不是不会执行了
      

  5.   

    是有~不过++a>2成立的说。。
      

  6.   

    恩,是考有关短路和自增符号的运用哦
    class Test_one{
      public static void main(String[] args){
    int a=2;
    int b=1;
    for(int c=0; c<5; c++){
    if(( ++a>2 )&&(++b>2)){
    a++;
    }
    }
    System.out.println("a="+a +" b="+b);
      }
    }
    a=11 b=6
      

  7.   

    咋看很神秘,呵呵,这只是蒙学得不精的人的!不知道这位仁兄对编程思想是否有很深刻的领悟,不及,等我慢慢道来!在学写程序的时候,你是否发认真总结过,是否有有种函数思想在里面,在我的脑海里面!读程序就是读函数!函数的精髓,变!也许你觉得我啰嗦,是的,本来还有很多要分享的,算了,给你解读代码!
    class Test_one{
      public static void main(String[] args){
    int a=2;
    int b=1;
    for(int c=0; c<5; c++){
    if(( ++a>2 )&&(++b>2)){
    a++;
    }
    }
    System.out.println("a="+a +" b="+b);
      }
    }
    相信仁兄对每一句代码懂!不懂,呵呵回帖给你解答!
    这里仁兄没有用到变,要知道,每到程序到计算机,是这样输出的了?我说的不是什么编译,执行之类的,我说的是计算机要经过复杂的计才得到结果!好了,这里点到了!记住,这句话应用的好坏直接影响到你对代码的解读!
    如果你理解了我的意思,那么你应该想到最后输出的a和佛如循环里的c一样经过了4次先加后用和4次用后自加
    b经过多少次加后在用呢?4次,呵呵到这里,你猜把if(( ++a>2 )&&(++b>2))改为if(( ++a>3 )&&(++b>2))结果是多少呢?举一反三!相信你能掌握!
      

  8.   

      
                    int a = 2;
    int b = 1;
    for (int c = 0; c < 5; c++) {
    if (++a > 2 || ++b > 2) {
    a++;
    }
    }
    System.out.println("a=" + a + " b=" + b);这样写,或许能考到人
      

  9.   

    考 && 与 &的 ||和|区别&&有短路的作用,一个表达式为false,第二个表达式不执行
    & 两个表达式都要执行同理
    |两个表达式都要执行
    ||第一个表达式为true,第二个表达式不执行
      

  10.   

    a=3,b=2
    a=5,b=3
    a=7,b=4
    a=9,b=5
    a=11,b=6
    第二次打印a=5
      

  11.   

    结果是这样的,但是我认为将if语句改为这样为更好:
    if((++b>2)&&(++a>2)){
         a++;
       }
      

  12.   

    又是c区一直出现i++,++i,问题,不是,c在gcc,和vc6.0上结果不同,java估计也不同,这问题和孔乙己的回字有几种写法一样结果我在eclipse里跑过了,a=11 b=6
      

  13.   

    a=3b=2c=0
    a=5b=3c=1
    a=7b=4c=2
    a=9b=5c=3
    a=11b=6c=4
      

  14.   

    public class Text { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int a=2;

    int b=1;
    for(int c=0; c<5; c++){
      if(( (a++)>2 )||((b++)>2)){
       a++;
      }
    }
    System.out.println("a="+a +" b="+b);
       } }a=11 b=2
    public class Text { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int a=2;

    int b=1;
    for(int c=0; c<5; c++){
    if(( (a++)>2 )&&((b++)>2)){

    a++;
    }
    }
    System.out.println("a="+a +" b="+b);
      } }
    a=9 b=5  你得理解   可以有很多变化  面试很变态  基础很重要!