2016-11-06 12 views
-3

これは私の最初の質問です。私はコミュニティに参加してうれしいです。 私は明日のテストを持っている、と例の一つである正確な操作が行われた何その行i = jの意味は何ですか -

i=0; j=2; z=2 
i=j--; 

はありますか?私が知っているから、j-は毎回j-1を意味する。 ありがとう! Dr.Javaにあります。

答えて

3

iをjと等しく設定し、jから1を減算することを意味します。

6

i = j--;は代入文です。右側が評価され、結果の値が左側のものに割り当てられます。あなたのケースでは、それが意味する:

  1. jの値が読み取られる(2、そのコードに)
  2. j(そのコードに、1に)デクリメントさ
  3. ステップ1において読み込まれた値( 2)は--後であるため、ステップ1および2の順であるi

に割り当てられています;後置デクリメント演算子です。 j接頭辞減算演算子)の前の場合は、手順1と2を逆にします。

+0

さて、感謝します。 1つの補足的な質問:i = 3; j = 2; z = 2、z = i ++%j;私はその行で何をすべきですか? –

+0

@Román:あなたがそれを(上記のように)部品に分解すると、あなたはどうなると思いますか? –

+0

私は分かりませんが、あなたが前に言ったのと同じだと思います。まず、i%j(この場合は3%2、z = 1)の値をzに代入してから、次の行i ++したがってi + 1(この場合は3 + 1)です。私は正しい?私は本当にあなたの助けに感謝しています。 –

1

このコードの別のショートカットです。

i=0; j=2; z=2 
i = j; 
j = j - 1; 
0

これは、ポストデクリメント演算子を使用したため、これは値2を持つことを意味します。 Jはデクリメントされるので値は1になります。

i = --j 

を値を代入する前に減らされているので、私は、1の値を持つことになります:あなたが書かれていた場合 。

ジェラルド

関連する問題