2017-02-22 6 views
-5

次のコードセグメントを実行した結果、何が表示されますか? (私は通常、ちょうどこれを行うには私のコンピュータ上でJavaプログラムを使用します。しかし、プログラムが別の数時間を要するであろう、更新しています。。)とにかく、ここでのコードセグメントは次のとおりです。次のコードセグメントを実行した結果、何が印刷されますか?それはなぜ起こるのですか?

ArrayList<String> digits = new ArrayList<String>(); 
for (int k = 0; k <= 9; k++) 
{ 
digits.add("" + k); 
} 
for (int k = 0; k <= 4; k++) 
{ 
String d1 = digits.remove(k); 
String d2 = digits.remove(k); 
digits.add(k, d1 + "+" + d2); 
} 
System.out.println(digits); 

私も欲しいですなぜこのコードを手作業で行っているのかを知ることができます。私は完全に間違った答えを得ていることを知っているので、あなたが得た答えが正解である理由を知りたい。

+5

を? SOはコンパイルサービスではありません。 – OldProgrammer

+0

私は知っています。しかし、私も知りたいです。なぜ答えが出るのですか? –

+0

私はそれを編集せずにそれを通過しました。そして私の答えは完全に間違っていた。 –

答えて

0

出力される [+ 0,1 + 2,3 + 5 4、+ 7 6、8 + 9] 0から9までの数字により配列リストに追加され

  • 最初のfor-loop。

    for (int k = 0; k <= 9; k++) { digits.add("" + k);} 
    
  • 5つの数字が削除されます。最初の反復では、数字0と1が削除されます。 removeは後続の要素を左に移動することに注意してください。
  • 同じ繰り返しで、2桁の数字を含む文字列が、位置kのArrayListに挿入されます。

    for (int k = 0; k <= 4; k++){ 
        String d1 = digits.remove(k); 
        String d2 = digits.remove(k); 
        digits.add(k, d1 + "+" + d2); 
    } 
    
+0

ありがとう!この説明はよく考えられており、非常に簡単で分かりやすいです。 –

0

出力は[0 + 1,2 + 3,4 + 5,6 + 7,8 + 9]のようになります。しかし、コンパイルしなかった。

+0

なぜあなたはその答えを得たか説明してください –

0

はあなたのコードをコンパイルし、それを実行するためにこのサイトを使用することができます。

https://www.compilejava.net/

なお、この生成: 真剣[0 + 1、+ 3 2、+ 5 4、+ 6,7、+ 9 8]

関連する問題