課題はこちら
冗長な if文の書き方をしている人が多い。
if (…){
out.println("A");
out.println("</body>");
out.println("</html>");
out.close();
} else {
out.println("B");
out.println("</body>");
out.println("</html>");
out.close();
}
は
if (…){
out.println("A");
} else {
out.println("B");
}
out.println("</body>");
out.println("</html>");
out.close();
と書くべきである。
また、
if (0<=sec && sec<20) {
out.printf("<font color='red'>");
}
if (20<=sec && sec<40) {
out.printf("<font color='green'>");
}
if (40<=sec && sec<60) {
out.printf("<font color='blue'>");
}
あるいは、
if (0<=sec && sec<20) {
out.printf("<font color='red'>");
} else if (20<=sec && sec<40) {
out.printf("<font color='green'>");
} else if (40<=sec && sec<60) {
out.printf("<font color='blue'>");
}
のような条件文を書いている人が多かったが、これは必要のない 比較を何度もしていて効率が悪く、間違いの入り込み易い形である。 secは0以上60未満とわかっているので、 次の書き方で良い。
if (sec<20) {
out.printf("<font color='red'>");
} else if (sec<40) {
out.printf("<font color='green'>");
} else {
out.printf("<font color='blue'>");
}
出力されるHTMLファイルがおかしくなる解答がある。
if (i%10==0){
out.print("<font color='red'>");
}
out.print("ABCDE");
out.println("</font>");
out.println("</body>");
out.println("</html>");
out.close();
では、
i%10==0でないとき、対応する <font …>タグがない
</font>タグが出力されてしまう。
ものすごくばかばかしい書き方
if (i==0) {
out.println("<img src='0.png' alt='0'>");
} else if (i==1) {
out.println("<img src='1.png' alt='1'>");
} else if (i==2) {
out.println("<img src='2.png' alt='2'>");
} else if (i==3) {
out.println("<img src='3.png' alt='3'>");
} else if (i==4) {
out.println("<img src='4.png' alt='4'>");
} else if (i==5) {
out.println("<img src='5.png' alt='5'>");
} else if (i==6) {
out.println("<img src='6.png' alt='6'>");
} else if (i==7) {
out.println("<img src='7.png' alt='7'>");
} else if (i==8) {
out.println("<img src='8.png' alt='8'>");
} else if (i==9) {
out.println("<img src='9.png' alt='9'>");
}
をしている人が少なからずいる。
out.println("<img src='"+i+".png' alg='"+i+"'>");
あるいは
out.printf("<img src='%d.png' alt='%d'>%n", i, i);
の1行で済む。