Socially incompatible person

プログラミングは全く初めてのド素人どこまでやれるか挑戦します。

JAVA に再再挑戦(標準入力で入力した数値の最大値と最小値を出力する)

主題の問題を本日午前まで考えましたが
日本語的にコマンドを作成するとどうしても
最小値がうまく出力できません。


なので同僚に教えを乞いアドバイスを
もらいましたがいまいち理解できませんでした。


そこで
エクリプスのデバッグ機能を使用して
一つづつ細かい動作を何度も確認しました。



最小値をうまく入力するポイントは下記8~10行目の
で後に条件付けして動作させる際の基準となる数値を
forの1週目の際に変数のmini,maxに代入する
事ができていなかった事です。


最大値は上記の作業を意識しなくてもうまく動作しますが
最小値は上記作業をしないと正の数を入力しない場合
は初期値が0になっている為出力は0となってしまいます。
(負の数を入力した場合は上手く出力されるのですが・・・)
なので9行目、特に10行目の変数miniとmaxに1回目の標準入力の
値が必要となる事が理解できました。


今までは自分ひとりの力で何としてでも問題を解こうとしていましたが
やはりやり方を理解している人に教えてもらうと理解度が変わる為
ある程度やって解らない場合は教えてもらうことも重要だなと感じました。


今回教えてもらって作成したコードは下記の通りです。


Scanner scan = new Scanner(System.in);


int mini=0;
int max=0;
//int mininum;
for (int i=1; i<11; i++) {
int x = scan.nextInt();
System.out.println(i+"″つ目の数字");

if (i==1) { //1週目の標準入力で最大値と最小値の基準値を入力
max = x;
mini =x;

}

if(x>max) {
max=x;
}
if(mini>x) {
mini=x;

}
}
System.out.println(max+"これは最大値です。");
System.out.println(mini+"これは最小値です。");
}


}