十一日目は今までのおさらい
十日目のプログラムをいじっただけ、とも言う。
import java.io.*; public class kaimonokeisan { /** * @param args * 買った商品の数・品名・価格を入力すると、最小・最高額の品名と * 価格、合計金額、消費税額を表示するプログラム */ public static void main(String args) throws IOException { // TODO Auto-generated method stub //変数を宣言 String str1; String str2; int num = 0; int kakaku; System.out.println ("買い物お疲れ様です。今日はどんな買い物をしてきましたか?"); System.out.println ("購入品の数を入力して下さい"); //入力準備 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); str1 = br.readLine(); num = Integer.parseInt(str1); while(num <= 0){ System.out.println("購入品の数をちゃんと入力して下さい"); str1 = br.readLine(); num = Integer.parseInt(str1); } System.out.println(num + "個ですね。商品名、価格を入力して下さい"); //入力用の配列変数を宣言 String hiname = new String[num]; int nedan[] = new int[num]; //品名・価格の入力処理を行う for(int i=0; inedan[k]){ String tmp2 = hiname[j]; hiname[j] = hiname[k]; hiname[k] = tmp2; int tmp1 = nedan[j]; nedan[j] = nedan[k]; nedan[k] = tmp1; } } } //最高値・最安値を表示 System.out.println ("一番安い品は" + hiname[0] + "、価格は" + nedan[0] + "円です"); System.out.println ("一番高い品は" + hiname[(num-1)] + "、価格は" + nedan[(num-1)] + "円です"); //合計金額を表示 int sum = 0; for(int m=0; m
電卓使えよ、と思ったのはそっと伏せておく。
引っかかったポイント
- 最高額を出力するときにhiname[num]と記述していた為、引数が不正となった
配列変数の要素数が5の場合、0〜4なんだよな。なのに5って入力してたようなもんだよなぁorz
- 品名を代入する変数の宣言をchar型にしてた
これ、文字列入らないのね…本を見て適当に書いたら、品名を"スイカ"と入力したら"ス"だけ表示されてちょっと笑った。
- 消費税額の計算・表示に困った
最初、int tax = 0;と宣言したけど、思い切りエラーになった。これはすぐ原因わかったのでfloat型に変更したけど、"0.05"の後ろに"F"を入れないとまたエラーになったのがまだよくわからない。単純に数字を入れると全てInt型として認識されるのかな?
書いてから思ったこと
何かやたら長っ!
この調子で続けて行ったら、一日の日記がとんでもない長さになるような気がしてきた…うーむ。いいんだろうか…