Tips

【Java】プログラム作成練習問題 5

【Java】プログラム作成練習問題 5

プログラム作成問題の第5回となります。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

int型の変数nを宣言し、1からnまでの数をカンマ区切りで表示せよ。
例)1,2,3,4,5

解答例1
[java] package exercise;

public class Exercise_005 {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
System.out.print(i);
if (i != n) {
System.out.print(",");
}
}
}
}
[/java]

最後だけカンマが付かないロジックになっています。


解答例2
[java] package exercise;

public class Exercise_005 {
public static void main(String[] args) {
int n = 5;
int cnt = 1;
while(true) {
System.out.print(cnt);
if(cnt == n) {
break;
}
System.out.print(",");
cnt++;
}
}
}
[/java]

while文を使った書き方です。
最後のカンマを表示する前にbreakします。


解答例3
[java] package exercise;

public class Exercise_005 {
public static void main(String[] args) {
int n = 5;
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= n; i++) {
sb.append("," + i);
}
sb.delete(0, 1);
System.out.println(sb);
}
}
[/java]

うーん、って感じのソースになりました。
ロジックとしては「,1,2,3,4,5」から先頭のカンマを削除するというもの。
解答例1や2と違ってStringBuilderクラスとか使ってるのでメモリの使用量も多くなってしまいますね。。。


間違い例

[java] package exercise;

public class Exercise_005 {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
System.out.print(i + ",");
}
}
}
[/java]

この例だと最後の数字の後にもカンマがついてしまいます。
まあこれがこの問題のポイントになる部分ですね。
最後だけカンマを付けたくない → 「最後だけ」ということをどうやって判定するのか
というような思考が必要です。


  

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search