以下の2つの条件のどちらにも当てはまらないのはどんな条件かを考えてみましょう
* 変数iの値が10の場合
* 変数iの値が10より小さくて5より大きい場合

それは、

iの値が5以下(5は含みます)か、10より大きい場合です。

else ifをifに変えても、表示結果に変化はありません(試してみましょう)。

ただし、動作としては両者には明確な違いがあります。

  • else ifの場合は、その前に存在するif文でfalseに判定されなければ、こちらのif文は判定自体されない
  • ifの場合は、その都度if文が判定される。

Sample5C.javaは、以下のように書き換えることができます。つまり、if〜else if文は、以下のような書き方を省略した書き方にしている、とも言えます。

変数iの値に1、5、9、10、11を入れると以下のように表示されることになります。
i = 1 =>
「iの値は10ではありません」

i = 5 =>
「iの値は10ではありません」

i = 9 =>
「iの値は10ではありません」

i = 10 =>
「iの値は10です」

i = 11 =>
「iの値は10ではありません」

サンプルプログラムSample5bは1つのif文が含まれていて、その条件は「変数iの値は10に等しいか?」というものです。よって、iに10とそれ以外の値の2つを与えれば、全ての可能性を網羅することになります。