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

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

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

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

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

1125閲覧

Java WHILEループ内での配列内への数値の格納について

hobby527crane

総合スコア0

Java

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

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/05/28 01:30

課題の中で、標準入力した数値を、3+2+1=6、と合計の計算式と合計結果が表示したいです。
ループの過程で配列やリストに入力値を格納するところまでは考えついたのですが表示方法が分からず質問いたしました。解決方法のご呈示のほどお願いします。

<現在の実行結果>
:input name>3
足し算を続けますか?
続ける場合はyを、終了する場合はy以外を入力してください>続ける場合はyを、終了する場合はy以外を入力してください>y
:input name>2
足し算を続けますか?
続ける場合はyを、終了する場合はy以外を入力してください>続ける場合はyを、終了する場合はy以外を入力してください>y
:input name>1
足し算を続けますか?
続ける場合はyを、終了する場合はy以外を入力してください>続ける場合はyを、終了する場合はy以外を入力してください>a

6 (終了)

ここで、aを押したら3+2+1=6と表示するようにしたいです。

<以下 現在のソースコード>

//合計値の初期化 int sum=0; while(true) { try { System.out.print("Input>"); //標準入力作成 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); BufferedReader br2=new BufferedReader(new InputStreamReader(System.in)); String str=br.readLine(); int i=Integer.parseInt(str); //入力値の加算 sum+=i; //入力値を格納するための配列作成 int[]number=new int[i]; System.out.println("足し算を続けますか?"); System.out.print("続ける場合はyを、終了する場合y以外を入力してください>"); String cont=br2.readLine(); //継続の確認 if(! (cont.equals("y"))) { **//疑問部分 //配列にループ内で格納した数値を出力** System.out.print(Arrays.toString(number)+"+"); System.out.println(sum); //合計の算出 break; } //例外 }catch( NumberFormatException e ) { System.out.println("ERROR-入力値が数値以外です"+e); } } }

}

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

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

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

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

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

guest

回答1

0

多分初心者さんだろうと思ってコメントします。

  1. StringBuilderをwhile文の外で宣言し、while文内で「入力数値+"+"」をappend()
  2. "y"以外を入力されたときに計算結果をappend()
  3. while文の外でtoString()で出力

で行けるんじゃないかと。加算は別途。

あと、コードで「これは…」というものがあったので書いておきます。

int[]number=new int[i];

while文の中で宣言してるので、毎回初期化されますよ。

if(! (cont.equals("y"))) {

あまりいい書き方じゃないです。場合によってはNullPointerExceptionが発生しうる書き方です。
定数があるなら、"y".equals(cont)としてNullPointerExceptionは回避しましょう。
また、if文の条件で!を指定すると事故りがちなので、なるべくtrueになる条件を指定し、
falseになった際に期待される処理はelse句に書くといいです。

投稿2020/05/28 01:55

kaputaros

総合スコア1844

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問