2次元配列から最大値を検索する
2行、5列の二次元配列に適当な数値(0以上)が格納されています。ここから最大の数値を検索するプログラムが下記になります。新規でクラスを作成し、下記を入力するかコピーしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package step08; public class Array1 { public static void main(String[] args) { int[][] hairetsu = { {1231,232,10,5,333}, {1,343,66,1230,355} }; //最大値格納用変数。初期値をマイナスとしておく int Max = -1; //配列の行数分ループを行う for(int idx = 0;idx < hairetsu.length;idx=idx+1){ //配列の列数分ループを行う for(int idx2=0;idx2< hairetsu[0].length;idx2=idx2+1){ if( hairetsu[idx][idx2] > Max ){ //配列の値が最大値か? Max = hairetsu[idx][idx2]; //最大値の値を更新する } } } System.out.println("最大値は"+Max+"です。"); } } |
プログラムを眺めながら動きを確認してください。また、配列の数値やループ条件を変えながら、どのように変化するか試してみてください。
残額を求める
複数のスーパーで買い物をしました。商品の購入金額はスーパー毎に次のように格納されています。
1 2 3 4 5 |
int[][] price = { {440,330,108,180,233}, //スーパーA {680,210,1280,0,0}, //スーパーB {2400,480,93,240,0} //スーパーC }; |
所持金は10,000円でした。各スーパ毎の購入金額を集計し、残金を計算するプログラムが下記になります。新規でクラスを作成し、下記を入力するかコピーしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package step07; public class Array1 { public static void main(String[] args) { int[][] price = { {440,330,108,180,233}, //スーパーA {680,210,1280,0,0}, //スーパーB {2400,480,93,240,0} //スーパーC }; String[] mise = {"スーパーA","スーパーB","スーパーC"}; int k=0; //店毎の計 int kei=0; //全体の計 //店舗の件数分ループを行う for(int i=0;i<mise.length;i=i+1){ //買い物のアイテム数分ループを行う for(int j=0;j<price[i].length;j=j+1){ k = k + price[i][j]; //金額を合計する } //店毎の合計表示 System.out.println(mise[i] + "の合計は"+k+"円です。"); kei = kei + k; //全体合計の加算 k=0; } System.out.println("合計は"+kei+"円です。"); System.out.println("残高は"+(10000-kei)+"円です。"); } } |
プログラムを変更しながら理解を深めていってください。次のチャレンジも挑戦してみてください。