package objprog04000;

/**
 *　自動販売機の取扱商品管理をするプログラム
 *　メインクラス
 */
public class VendingMachineMain {

  /**
   *　メインメソッド
   *　商品をいくつか挿入し、挿入されているか検索する。
   *　その後、商品番号66の商品が取扱われているか検索する。
   *　最後に、商品番号55の商品を削除し、削除されているか確認するために表示をする。
   */
  public static void main(String[] args) {
    int[] itemNo = new int[10];//商品番号を管理するための配列を作る

    //初期状態の配列を出力する（0が10個続く）
    display(itemNo);

    //取扱商品を１０種類登録する
    itemNo[0] = 77;//0番地に商品番号77を登録
    itemNo[1] = 99;//1番地に商品番号99を登録
    itemNo[2] = 44;//2番地に商品番号44を登録
    itemNo[3] = 55;//3番地に商品番号55を登録
    itemNo[4] = 22;//4番地に商品番号22を登録
    itemNo[5] = 88;//5番地に商品番号88を登録
    itemNo[6] = 11;//6番地に商品番号11を登録
    itemNo[7] = 66;//7番地に商品番号66を登録
    itemNo[8] = 33;//8番地に商品番号33を登録（わざわざ全部書く必要はないが、
    itemNo[9] = 10;//9番地に商品番号10を登録　書くとより親切）

    //登録後の取扱商品を出力する
    display(itemNo);

    //商品番号で在庫を検索する
    int searchKey = 66;//検索する商品番号
    int i;//ループの回数を保存する
    for(i = 0; i<10; i++){
      if(itemNo[i] == searchKey){//在庫の商品番号と検索する商品番号が一致しているか判別する
        break;
      }
    }
    if(i==10){//ループ回数を受け取りそこから検索にヒットしたか判断する
      System.out.println("見つかりませんでした");//検索する商品番号があった
    } else {
      System.out.println("見つかりました");//検索する商品番号がなかった
    }

    //検索後の取扱商品を出力する
    display(itemNo);

    //商品番号で在庫を削除する
    int deleteKey = 55;//削除する対象となる商品番号
    int j;//削除される配列の番号を保存
    for(j = 0; j<10; j++){//削除対象を検索する
      if(itemNo[j] == deleteKey){
        itemNo[j] = 0;//見つかったら、商品を削除するために0を代入する（一応）
        break;
      }
    }
    for(int k=j; k<10; k++){//削除後の残りの要素をつめる
      if(k < 9){//配列の途中だった
        itemNo[k] = itemNo[k+1];
      }else{//配列の最後だった
        itemNo[k] = 0;
      }
    }

    //削除後の取扱商品を出力する
    display(itemNo);

  }

  /**
  * 取扱商品番号を表示するメソッド
  */
  public static void display(int[] target){
    for(int i = 0; i<10; i++){
      System.out.print(target[i]+",");//一つごとに改行すると見にくくなるので改行しない
    }
    System.out.println();//すべて表示し終わったら、改行し結果を出力に反映させる
  }

}