Frage

Ich bin ein seltsames Problem.

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

Ich möchte c3 * 2 in der println statment einzufügen. Aber

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

gibt mir ein anderes Ergebnis.

Hier ist der gesamte Code:

        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) ;     
        }          
        .....
    }

Irgendwelche Ideen?

War es hilfreich?

Lösung

Wenn Sie c3 *= 2; tun wird es den Wert von c3 ändern, die einen anderen Wert aus der letzten Zeile System.out.println( c1+c2+c3); gedruckt wird. Sie müssen also die Logik des Programms folgen.

Andere Tipps

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

würde die gleichen Druck wie:

System.out.println( c3 * 2 ) ; 

aber der entscheidende Unterschied besteht darin, dass im ersten Fall der Wert des c3 Variable modifiziert werden (multipliziert mit 2), während in den zweiten bleiben sie gleich.

Es ist möglich, unterschiedliche Ergebnisse zu erhalten, je nach Art Ihrer Variable - erinnern *= (und auch ++, -- usw.) wandelt das Ergebnis in der gleichen Art wie c3. Zum Beispiel:

byte b = 100;
System.out.println(b*2); // 200
b*=2;
System.out.println(b); // -56

Beispiel: http://ideone.com/ojKfA

Wenn Sie Variable ändern möchten, und es zugleich drucken Sie es wie folgt tun:

System.out.println(c3 *= 2);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top