System.out.println(a++);
b = a;

を実行させると表示される値はa、つまり1増加する前の値になります。さらに、その後で変数bに代入される値はその1増加した値となります。

一方、


System.out.println(++a);
b = a;

を実行させると、表示される値も変数bに代入される値のどちらも1増加した値となります。

まず、Sample6b.javaの指定の記述を「int i = 0; 」に変更して実行させると、以下の結果となります


0
1
2
3
4

また、while文で同じように表示させるには、

とするか、

とします。

変数iの値を最初どうするかとwhile文が終わる条件をどう表すかを考えれば大丈夫です。