![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?e8efa67)
わからないので教えてください。
キーボード入力を負の整数になるまで繰り返し、負の整数を入力したら
負の整数を含めずにその平均値を出しなさい。
という問題なのですが、
僕は繰り返しなので、
do{
System.out.println("整数を入力してください。負の数が入力されたら終了します。");
line = br.readLine();
i= Integer.parseInt(line);
}while(i>0);
と考えたのですが、これ以上先に進めなくて困っています。
まずこのiに入力されたものを合計しなくてはいけないので、配列を使わないとならないとわかったのですが、配列の使い方がいまいちわかりません。
int []m=new int[i];
と入力し(その前にiを初期化)
m[i]= Integer.parseInt(line);
としたのですが、うまくいきませんでした。この場合どのように配列を考えればよいのでしょうか。
あと、「最後の入力した負の整数を含まず」ということは、どう書けばよいのでしょうか。
ヒントでもいいので教えてください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
koko_uさんの回答にもありますが、配列は使わなくてもいいと思います。
以下に流れを簡単に書いてみます。
(1)
とりあえず、do~whileの前に、int型の適当な変数を2つ(仮にsum、counterとします)を用意しておきましょう。
sumは入力値の和を格納するため、counterは加えた回数を格納するために使います。
(2)
do~whileの中で
i= Integer.parseInt(line);
として取得した入力値のint型の値について、負の数かどうか判定します。
(3)
上記(2)で負の数でなければ、sumにiを加え、counterを1だけ増やします。
もし負の数だった場合は、break;として、ループを抜けましょう。
(今回はwhile判定があるので、breakは必須ではありません)
(4)
いつかはループを抜けてここにたどり着くでしょう。
そうしたら、先ほどのsum(合計)をcounter(加えた回数)で割れば、求めたい平均になります。
なお、入力値が数値でないときの保証や、用意した変数の初期化には言及していません。
必要でしたらそれも付け加えておいてください。
あえて日本語の説明で書くようにして、コーディングをお見せしないようにしました。
アルゴリズムに強くなったほうが、gumgumgumさんの今後のプログラミング技術につながると考えましたので。
がんばってください!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的配列確保
-
[Ljava.lang.Stringってなんですか
-
2次元配列でのiとjについて。
-
この警告はどうすれば?
-
javaについて
-
forループの評価(条件)式につ...
-
配列の中に複数存在する数がい...
-
2次元配列のコピー
-
C#で動的配列Listの中身をListB...
-
javamailで複数人にメールを送...
-
Javaで文字と数字が混ざったも...
-
JSPやサーブレットでSystem.out...
-
パソコンキーボードで時分秒を...
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
変数を動的に利用するには?
-
VBAで配列の計算
-
C言語32bitから64bitの移行につ...
-
System.err. printlnとSystem.o...
-
「配列定数は、イニシャライザ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列で、値の入っている要素数...
-
【C#】ハッシュテーブル(連想...
-
[Ljava.lang.Stringってなんですか
-
javamailで複数人にメールを送...
-
この警告はどうすれば?
-
main(String[] args) の args...
-
javaで大容量テキストファイル...
-
Javaで文字と数字が混ざったも...
-
ページング
-
C言語でunsigned char配列を連...
-
Javaで文字を漢字であるか否か...
-
配列の中に複数存在する数がい...
-
C#で動的配列Listの中身をListB...
-
『args[]』とは?
-
同じ配列またはクラスを、2回...
-
java StringとString[]の違い
-
配列をセッションに割り当てた後で
-
【Ajax通信&Java】配列の受け取...
-
セッションを使ったint型の値の...
-
forループの評価(条件)式につ...
おすすめ情報