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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

27342閲覧

数値を繰り返し入力して0が入力されたら入力を止め、入力値の合計を出し平均値を出すプログラム

yoppi07

総合スコア30

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2017/08/07 06:30

編集2017/08/07 08:30

数値の合計を行い、平均値を出すプログラム(0が入力されたら停止)を作成しているのですが、自分の意図とした通りに動いてくれません。
特に警告も出ないので、どこに原因があるかわからないです。
修正すべき箇所や必要とされる知識等を教えていただけたらありがたいです。
宜しくお願い致します。

public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 合計値を保管するための変数sum int sum = 0; int ave = 0; while (true) { System.out.println("数値を繰り返し入力して下さい"); int num = scan.nextInt(); if (num == 0) { break; } else { sum += num;// 合計値sumに入力値numを足していく num++; ave = num; } } System.out.println(sum / ave); } }

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

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

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

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

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

guest

回答2

0

ベストアンサー

java

1Scanner scan = new Scanner(System.in); //ループの外に出す 2int sum = 0; //合計を保存するための変数 3while (true) { 4 System.out.println("数値を繰り返し入力して下さい(0で終了)"); //メッセージに終了条件を追加 5 int num = scan.nextInt(); 6 if (num == 0) { 7 break; 8 } else {//if (num != 0) { //num==0じゃなければnum!=0なので判定不要 9 sum += num; //合計に加算 10 } 11} 12System.out.println(sum); //ループを抜けてから表示する

投稿2017/08/07 06:59

fuzzball

総合スコア16731

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

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

yoppi07

2017/08/07 08:09 編集

ありがとうございます。 では、合計の平均値を求める場合はどのようにしたらいいでしょうか? 合計値/numを足した回数をすればいいと思うのですが、 whileの中でnumを宣言している為、警告が出てしまいます。
fuzzball

2017/08/07 08:20 編集

「足した回数」の変数名をnumにしたのでしょうか? そうであれば、変数名が重複しているために警告が出ていると思われますので、違う変数名にすれば解決します。(エラーや警告が出た場合は内容を書いて下さい)
yoppi07

2017/08/07 08:29 編集

回答ありがとうございます。 while外でaveを宣言しnumをインクリメントしたものをaveへ入れてやってみたのですが、思ったような結果になっていない気がします。 確認いただけますでしょうか?
fuzzball

2017/08/07 08:42 編集

平均は最後に計算すればいいので、変数を用意する必要はないのでは? データ数を数えるための変数を用意し、入力があるたびに+1して下さい。numは入力値の変数に使っているので、他の変数名(countなど)にしないといけません。(さきほどの回答に書いたのはこのことです) ループを抜けた後の sum / count が平均値です。 【補足】 aveがデータ数なのであれば、num++; と ave = num; を消して、 ave++; にすればいいです。
yoppi07

2017/08/07 09:01

ありがとうございます。 解決できました。
guest

0

これでどうでしょう?

Java

1public static void main(String[] args) { 2 int counter = 0 3 while (true) { 4 System.out.println("数値を繰り返し入力して下さい"); 5 Scanner scan = new Scanner(System.in); 6 int num = scan.nextInt(); 7 8 if (num == 0) { 9 System.out.println(counter); 10 break; 11 counter += num 12 } 13 } 14}

投稿2017/08/07 06:35

_Victorique__

総合スコア1392

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問