插入变量以最小化代码

时间:2010-10-31 09:06:06

标签: java if-statement minimize

我面临一个奇怪的问题。

if ( c2==c1){
    c3 *= 2 ; 
    System.out.println( c3 ) ; 
    .....
}

我想在println语句中插入c3 * 2。但

if ( c2==c1){
    System.out.println( c3*2 ) ; 

给了我不同的结果。

以下是整个代码:

        public static void main(String [] args) {

           int c1 = Integer.parseInt(args[0]) ;
           int c2 = Integer.parseInt(args[1]) ;
           int c3 = Integer.parseInt(args[2]) ;

/*  1 */       if ( c1 != c3 ){
/*  2 */        if (c2==c1){
/*  3 */              
/*  4 */              System.out.println(c3 + c2 ) ; 
/*  5 */              c3 *= c2 ; 
/*  6 */        }

/*  7 */       }else{ 
/*  8 */        if ( c2==c1){
/*  9 */                    c3 *= 2 ; 
/* 10 */                    System.out.println( c3 ) ; 
/* 11 */                    c3 *= c2 ; 
/* 12 */            if ( c1 < c2 ) c2 += 7 ;
/* 13 */                   else c2 += 5 ; 
/* 14 */               }}

/* 15 */       System.out.println( c1+c2+c3) ;     
        }          
        .....
    }

有什么想法吗?

4 个答案:

答案 0 :(得分:7)

c3 *= 2; 
System.out.println( c3 ) ; 

将打印相同的内容:

System.out.println( c3 * 2 ) ; 

但关键的区别在于,在第一种情况下,c3变量的值将被修改(乘以2),而在第二种情况下,它将保持不变。

答案 1 :(得分:3)

根据变量的类型,可能会得到不同的结果 - 记住*=(以及++--等)将结果转换为与{{{{1}相同的类型1}}。例如:

c3

示例:http://ideone.com/ojKfA

答案 2 :(得分:1)

如果您执行c3 *= 2;,则会更改c3的值,该值将从最后一行System.out.println( c1+c2+c3);打印不同的值。所以你需要遵循你的程序的逻辑。

答案 3 :(得分:1)

如果你想修改变量并同时打印它,你可以这样做:

System.out.println(c3 *= 2);
相关问题