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

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

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

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

Q&A

解決済

2回答

8570閲覧

for文の中にある最大値の取得方法

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2018/01/20 18:29

###前提・実現したいこと
某サイト内で出されている問題について
「forループを用いて、1から100までの乱数を5回発生させ、表示し、終了後その中の最大値を表示しなさい。」
という問題があるのですが、どうしても解くことが出来ません。

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

###該当のソースコード
public class NewClass{
public static void main(String[] args){
for(int i=0;i<=5;i++){
int num=(int)(Math.random()*100)+1;
System.out.println(num);
}
System.out.println("最大値:");
}
}

###試したこと
前提としてforで5回乱数を発生させるところまでは出来ました。
終了後その中の最大値を表示するにはどうすればいいのかが分かりません。

###補足情報(言語/FW/ツール等のバージョンなど)

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

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

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

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

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

guest

回答2

0

ベストアンサー

こちらでどうでしょうか?

Java

1public class NewClass{ 2 public static void main(String[] args){ 3 int max = 0; // ここの部分を追加しました 4 for(int i=0;i<=5;i++){ 5 int num=(int)(Math.random()*100)+1; 6 System.out.println(num); 7 if(num > max){ // ここの部分を追加しました 8 max = num; 9 } 10 } 11 System.out.println("最大値:" + max); 12 } 13} 14コード

maxという変数を用意してif文でもしnumが今あるmaxより大きい場合はnumをmaxに代入します。

投稿2018/01/20 19:28

Nippun

総合スコア1147

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

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

退会済みユーザー

退会済みユーザー

2018/01/20 20:49

ご回答ありがとうございます。 ようやく解けました! 繰り返すごとにnumとmaxが比較されて、より大きい値が最終的にmaxに代入されるんですね。 maxはfor文の外にあるからブロックの外でも使える。 最小値を求める問題も解けました。 配列型で同様の解き方をしている例が他サイトにあったのですが、 いまいち分かりにくくて考え込んでいました。
Nippun

2018/01/20 21:28

解決できてよかったです。
guest

0

サイコロを5回振ってその最大値を出すとお考え下さい。
メモなど使わないとしたら、どうやって最大値を判断しますか?

投稿2018/01/20 18:39

swordone

総合スコア20651

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

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

退会済みユーザー

退会済みユーザー

2018/01/20 21:19

ご回答ありがとうございます。 最大値がサイコロの場合、6までですね。 もし6が出た場合、6が最大値になるかな。 これならメモしなくても最大値が出たと判断できる。 でも6が出なかったら、出た目と比べて最大値を更新していきますね。 逆に最小値を判断する場合は、出た目と比べてより小さい目を最小値にする。 考え方は分かるようになったのですが、forの外で数値を使う方法が分からなかったので、 他の方をベストアンサーとさせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問