変数を挿入して、コードを最小限に抑えます
-
27-09-2019 - |
質問
私は奇妙な問題に直面しています。
if ( c2==c1){
c3 *= 2 ;
System.out.println( c3 ) ;
.....
}
println statmentに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) ;
}
.....
}
何か案は?
解決
もし、するなら c3 *= 2;
の価値が変わります c3
最後の行とは異なる値を印刷します System.out.println( c1+c2+c3);
. 。したがって、プログラムのロジックに従う必要があります。
他のヒント
c3 *= 2;
System.out.println( c3 ) ;
と同じものを印刷します:
System.out.println( c3 * 2 ) ;
しかし、重要な違いは、最初のケースでは c3
変数は変更(2を掛けます)が、2番目には同じままになります。
変数のタイプに応じて異なる結果を得ることができます - 覚えておいてください *=
(そしてまた ++
, --
, 、など)結果を同じタイプにキャストします c3
. 。例えば:
byte b = 100;
System.out.println(b*2); // 200
b*=2;
System.out.println(b); // -56
変数を変更して同時に印刷する場合は、次のように行うことができます。
System.out.println(c3 *= 2);
所属していません StackOverflow