先日5個の数字から最大値と最小値を求めるプログラムを投稿しましたが、コメントでアドバイスをいただいたので修正したものを再投稿したいと思います。@LouiS0616 さんコメントありがとうございます...!!
ちなみに前回の記事のリンクをここに貼っておきます。https://qiita.com/GARA41679531/items/c81b57a56bfcb28f84a0
#変更した点
前回のコードでは変数 min と max を 0 で初期化していたので、入力された数字がすべて正の数または負の数の時に最大値もしくは最小値のどちらかが 0 で出力されてしまいました。
そこを改善するために、1つ目に入力された数字を変数 min と max に代入し、そこから大小関係を調べるコードに書き直しました!
#コードの記述
package max_min;
import java.util.*;
import java.math.*;
public class Max_Min {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Scanner scanner=new Scanner(System.in);
double max=0;
double min=0;
int i;
double a;
System.out.println("5個の数字の中から最大値と最小値を求めます。");
for(i=1;i<6;i++) {
System.out.print(i+"つ目の数字:");
a=scanner.nextDouble();
if(i==1) {
min=a;
max=a;
}else {
if(a<=min) {
min=a;
}else if(a>=max) {
max=a;
}
}
}
System.out.println("最大値は"+max+"です。");
System.out.println("最小値は"+min+"です。");
}
}
上記に載せたコードが実際に書き直したコードです。
具体的にどこを変えたのかというと、 for 構文を使って5回数字を入力するプログラムを作っているのですが、その中で if 構文を使って1つ目に入力した数字を変数 min と max に代入させるようにしています。
#実行結果
今回はすべて負の数を入力してみましたが、最大値が 0 になることなくちゃんと表示することができました!!
#まとめ
自分では完璧と思っているプログラムでも改善点は隠れているのだなと改めて実感しました ! 笑
今回記述したコードの中にもまだまだ改善点があれば教えていただけると幸いです !
最後まで目を通していただいてありがとうございました !!