day103 Nuxt.js、Javaコンソールアプリ作成
こんばんは。今日は一日勉強が出来ました。
成果物も作れまして達成感と自信がつきました。
今日の実施内容です。
5/3:◎
・nuxt.js ->Vuexあたりの勉強
・Java ->コンソールプログラム作成「家計簿アプリ」
今日は12時間ぐらい勉強できました。
コンソールプログラムを半日かけて作れました。。
むちゃくちゃなインデント、コメントですけど一旦のせさせてください・・・。うれしい。
一から作るのがこんなに大変だなんて・・・。いい課題でした。
早く仕事を始めないとレベルアップが出来ないと痛感しました。
package pac;
import java.util.ArrayList;
import lib.Input;
//todo
// 同じ項目の時の処理
public class Test2 {
public static void main(String[] args) {
String menu;
Integer cost;
String answer;
ArrayList<String> menuList = new ArrayList<>();
ArrayList<Integer> costList = new ArrayList<>();
System.out.println("!!!家計簿アプリ開始!!!");
//段落
System.out.println("");
while((menu = Input.getString("項目")) != null) {
cost = Input.getInt("金額");
answer = Input.getString(menu + String.format("%,d", cost) + "円を登録します。よろしいですか?(Y/N)");
//段落
System.out.println("");
//equalsメソッドで判定。(メモリ領域のYと"Y"は別物)。文字列はequalsで判定する。
if(answer.equals("Y")) {
//同じ項目であれば加算する。
// 項目が重複していなければ「-1」が返ってくる。重複する場合は0~で配列の場所が返ってくる。
if(menuList.indexOf(menu) < 0 ) {
//異なる項目の場合は.add処理する
menuList.add(menu);
costList.add(cost);
}else {
//同じ項目であれば、金額をインクリメントする
//menuList.indexOf(menu) で配列数が確認できる
//配列数がわかれば、costの配列に当ててあげて
//list.set( 配列数 , cost[配列] += cost)
// 重複する配列のindexを変数代入。
int same = menuList.indexOf(menu);
costList.set(same , costList.get(same) + cost );
}
System.out.println("【家計簿】");
//for文で全項目を出力
for(int i=0 ; i < menuList.size(); i++) {
//タブで等間隔に表示させる。\t
System.out.println(menuList.get(i) + "\t" + String.format("%,8d", costList.get(i)) + "円");
}
//段落
System.out.println("");
}
}
//段落
System.out.println("");
System.out.print("家計簿アプリを終了します。");