十一日目は今までのおさらい

十日目のプログラムをいじっただけ、とも言う。

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型として認識されるのかな?

書いてから思ったこと

何かやたら長っ!
この調子で続けて行ったら、一日の日記がとんでもない長さになるような気がしてきた…うーむ。いいんだろうか…