Java:for文の練習問題(2) [勉強]
あー、for文でブログ記事2つになるとは思ってもいませんでしたYO。
ま、いいや。for文の()内の条件式って、かなり重要で、<の向きが違うだけで、思っていたことと処理結果が全然違ったりするんで、ホントfor文の条件式は慎重に、頭をひねりまくって書きましょう。ってか書くよう心がけます。(^-^;
次のfor文練習問題は、訓練中に講師から出された問題です。
「□■□■□・・・・■という模様を、入力された数だけ縦×横で描くプログラムを書いてください」
とりあえず、□■□■□■って交互に色が付いたり、白抜きだったり四角を連続表示させればイイんですよね。で、縦×横で描く。
・・・・・・(^-^;
自分なりに考えたソースは、以下の通りです。
import java.io.*;
public class Moyou1 {
public static void main(String args[]) {
BufferedReader kbd = new BufferedReader (new InputStreamReader(System.in));
System.out.print("数値を入力してください。 :");
try {
String line = kbd.readLine();
int kazu = Integer.parseInt(line);
for (int i = 0; i < kazu; i++) {
for (int j = 0; j < kazu; j++) {
if (j % 2 == 0) { //偶数値で■、奇数値で□を表示(横だけ)
System.out.print("■");
} else {
System.out.print("□");
}
}
System.out.println("");
}
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("正しい数値を入力してください。");
}
}
}
このソースを実行(もちろんコンパイルしてからね)すれば、□■□■と、奇数桁の部分には□、偶数桁の部分には■が表示されます。
いきなりここまで辿り着かない場合は、順を踏んでソースを書いていけばイイと思います。
まずは横1列に□(または■)だけを決まった数字(たとえば10とか決めちゃう)だけ表示するソース。
それが実現できたら、さらに入力された数だけ表示するソース。
それが実現できたら、次は縦×横で、□(または■)だけを入力させれた数だけ表示するソース。
そこまで実現できたら、あとはどうやって交互に□と■を表示させるか・・・ってことを考えたら、いけると思います。
この応用?として・・・
□■□■□■□・・・■
■□■□■□■・・・□
□■□■□■□・・・■
のように、行毎でも交互に□と■を表示させるようにするには・・・・・・
こんな感じのソースで。
import java.io.*;
public class Moyou2 {
public static void main(String args[]) {
BufferedReader kbd = new BufferedReader (new InputStreamReader(System.in));
System.out.print("数値を入力してください。 :");
try {
String line = kbd.readLine();
int kazu = Integer.parseInt(line);
for (int i = 0; i < kazu; i++) {
for (int j = 0; j < kazu; j++) {
if ((j + i) % 2 == 0) { //偶数値で■、奇数値で□を表示(縦にも横にも)
System.out.print("■");
} else {
System.out.print("□");
}
}
System.out.println("");
}
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("正しい数値を入力してください。");
}
}
}
Moyou1とMoyou2で何が違うか?
12行目です。
if ((j + i) % 2 == 0) {
この違いで、模様の描かれ方に変化が出るんですねぇ。不思議ですねぇ。
・・・もう、つかれたYO ぱとらっしゅ
ということで、そろそろREDSTONEプレイタイムに突入するため、Java javaなブログ記事はココまで。
See you next time. (^-^)ノシ
コメント 0