質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

5回答

8029閲覧

最後のカンマを消す方法について教えてください。

eipin

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/05/03 06:55

前提・実現したいこと

Javaを勉強している者です。
現在、九九の出力を行っています。
出力は「1×1=1,1×2=2・・・1×9=9」改行「2×1=2,・・・」
というように各掛け算の後にはカンマが入り、1の段が終わったら改行して2の段、3の段という具合に出力をしたいです。ただその時に、各段の「1×9=9」や「2×9=18」などの最後に9をかけて積を求めた後のカンマはない状態で出力をしたいです。

ご指南のほど、よろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

public class Exe09 {

public static void main(String[] args) { int[][] data = new int [9][9]; for (int i = 1; i < data.length; i++) { System.out.println(""); for (int j = 1; j <= 9; j++) { if (j < 10) { int sum = (i * j) ; System.out.print(i + "×" + j + "=" + sum + " "); } } } }

}

試したこと

ここに問題に対して試したことを記載してください。
使用しているツールは
EclipseのJAVA6.0です

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

質問文のコードをベースに変更してみました。

  • カンマでの区切りを表示するようにした。
  • 9 や 10 といった数字でなく、SIZE という定数を使うようにした。
  • date 配列は不要なので削除した。

java

1public class Exe09 { 2 final static int SIZE = 9; 3 public static void main(String[] args) { 4 System.out.println(""); 5 for (int i = 1; i <= SIZE; i++) { 6 for (int j = 1; j <= SIZE; j++) { 7 System.out.print(i + "×" + j + "=" + (i * j)); 8 if (j < SIZE) { 9 System.out.print(", "); 10 } 11 } 12 System.out.println(""); 13 } 14 } 15}

実行結果
イメージ説明

投稿2018/05/03 08:38

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eipin

2018/05/04 02:33

返事が遅くなり、申し訳ございませんでした。自分のコードをベースにご回答頂きありがとうございました。 「final static」という書き方は初めて知りました。参考にさせていただきます。ありがとうございました。
guest

0

各行9回目で抜けるという考え方もできます。

java

1public class Exe09 { 2 3 public static void main(String[] args) { 4 5 int[][] data = new int [9][9]; 6 7 for (int i = 1; i < data.length; i++) { 8 for (int j = 1; ; j++) { 9 int sum = (i * j) ; 10 System.out.print(i + "×" + j + "=" + sum); 11 if (j == 9) 12 System.out.println(); 13 break; 14 } 15 System.out.print(", "); 16 } 17 } 18 } 19}

投稿2018/05/03 07:19

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eipin

2018/05/04 00:38

返事が遅くなり申し訳ございませんでした。ご回答頂き、ありがとうございました。9回目で抜けるという考え方もあったんですね。参考にさせて頂きます。ありがとうございました。
guest

0

3項演算子を使うという方法があります。以下使用例、動作未確認

java

1System.out.print(i + "×" + j + "=" + sum + (j < 9 ? "," : "\n") );

投稿2018/05/03 07:10

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2018/05/03 07:11

書いてる間に解決していましたOTL
eipin

2018/05/03 07:14

ご回答頂きまして、ありがとうございました。 3項演算子というのは初めて聞きましたので、HogeAnimalLoverさんにご回答頂けなければ知りえないことでした。この方法も試してみます。ありがとうございました。
guest

0

jが9未満の時コンマを出力しました。

Java

1public class Main { 2 public static void main(String[] args){ 3 int[][] data = new int [9][9]; 4 5 for (int i = 1; i < data.length; i++) { 6 for (int j = 1; j <= 9; j++) { 7 int sum = i * j; 8 System.out.print(i + "×" + j + "=" + sum + " "); 9 if(i < 9){ 10 System.out.print(","); 11 } 12 13 } 14 System.out.println(); 15 } 16 } 17}

投稿2018/05/03 07:07

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/03 07:08

質問欄にif (j < 10) と書いてありますが、for文は9まで回りますので不要です。
eipin

2018/05/03 07:12

ご回答戴き、ありがとうございました。 9未満の時にコンマを出力するという手もあるんですね。その考えはなかったです・・・。 ありがとうございました。
guest

0

ベストアンサー

StringJoinerを使う方法もありますが、とりあえず愚直な方法を。

Java

1for(int i = 1; i <= 9; ++i) { 2 System.out.print(i + "×1=" + i); 3 for(int j = 2; j <= 9; ++j) { 4 System.out.print(", " + i + "×" + j + "=" + i*j); 5 } 6 System.out.println(); 7}

System.out.printfを使うともうちょっと簡潔に書けます。

コードの書き方について

teratailには、上記のようにコードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
Java

投稿2018/05/03 07:01

編集2018/05/03 07:03
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eipin

2018/05/03 07:10

ご回答頂まして、ありがとうございました。また、コード表示についてのご指南もありがとうございます。 こんなにシンプルに書けるとは思ってもなかったです。ありがとうございました。
swordone

2018/05/03 07:15

よく見たらJava6なのでStringJoinerが使えないという罠があった
LouiS0616

2018/05/03 07:19

ほんとですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問