我面临一个奇怪的问题。
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) ;
}
.....
}
有什么想法吗?
答案 0 :(得分:7)
c3 *= 2;
System.out.println( c3 ) ;
将打印相同的内容:
System.out.println( c3 * 2 ) ;
但关键的区别在于,在第一种情况下,c3
变量的值将被修改(乘以2),而在第二种情况下,它将保持不变。
答案 1 :(得分:3)
答案 2 :(得分:1)
如果您执行c3 *= 2;
,则会更改c3
的值,该值将从最后一行System.out.println( c1+c2+c3);
打印不同的值。所以你需要遵循你的程序的逻辑。
答案 3 :(得分:1)
如果你想修改变量并同时打印它,你可以这样做:
System.out.println(c3 *= 2);