2016-06-26 5 views
-7

私はedxでjavaコースを取っていました。この質問では、条件はx ++ == 4です。私はxの値4を入力したときにのみ、条件が真であると評価しました。しかし、なぜ?x ++ == 4はどのように条件ですか?

1)x = 3またはx = 2と入力すると、条件がfalseと評価されるのはなぜですか?

2)なぜx ++ == 4でも条件ですか?それはx = x + 4と似ています。それはどうして真実か偽であることができますか?それは、方程式であるなどのx> 3を好まない

enter image description here

+3

'x ++ == 4'は' x = x + 4'と似ていません。 –

+0

は '++'単項演算子と '=='を検索します。 – pvg

+0

なぜそれは*条件ではない*でしょうか? * "それは方程式です" * - ** no **、 '=='があります。 – luk2302

答えて

0
if (x++==4) { ... } 

単にxがある場合は、評価し、次の行

boolean b = (x == 4); 
x = x + 1; 
if (b) { ... } 

によって置き換えることができ4に等しく、その後の増分それを使用してそれはPostfix increment Operator ++


x = 3またはx = 2と入力すると、条件が falseと評価されるのはなぜですか?

x==4が条件だからだ

3 == 4; // false 
2 == 4; // false 
+0

コードを少し拡張する必要があります。 'x == 4'は文などではないので、現在のところコンパイルされません。あなたのステートメントをより正確にするための編集を提案します(あなたが同意しないと自由にロールバックできます)。 (downvoterではない) –

+0

@AndyTurner編集のおかげで、それは確かに明確です。私はdownvotesを気にしない..答えが正しい限り限り –

+0

クイック応答ありがとう!私はブール値b =(x == 4)でなければならないと思っています。 if(b){...} x = x + 1;これは後置インクリメントです。 – vade

0

から?変数

いけない++

同じでもちょうどに何が起こる

if (x---5==0) {のような醜いかの方法で発生する可能性があります...あなたの心をだまして聞かせた場合値上だけインクリメントされ、X ++ therfore be

if ((x--)-5==0) { 
+0

答えをありがとう。だからあなたの例は等価です(x == 5){}、その後x = x - 1? – vade

+0

はい...私が得たいと思っているポイントである例のために.... –

+0

すぐにまたは後でチェックします。それはオーバーフローのために良い状態ではないので、穴の状態を壊す可能性があります... –

関連する問題