十四日目は無理しないことにした
うわあああああああ
って叫びたくなるほど無理しすぎてた気がする十二日目。今日はとりあえず2つに分けてみた…引数や戻り値を使う練習ってことで。プログラムは下に「続きを読む」の形で載せときます。
膨大な量になって行きそうなので…携帯から見たら意味無い? それは…
すまんorz
処理自体はid:regasuie:20050711のプログラムと全く同じ、ただ2つに分けてみただけ。
だけ、と言ってもこれでかなり悩んだ。引数と戻り値がごっちゃになったり、戻り値の型とメソッドの型が違ってたり、型の違う2つの値をどうやって戻り値で返そうか、とか…
いかん書いててわかり辛くなってきた気がorz
以下、まとめ!
今日学んだこと
- 配列変数を戻り値にできること
- メソッドの型と戻り値の型は一致しなければならない
- 複数の型の値を戻り値にすることはできない
- 標準入力するクラスを呼び出す場合、呼び出す側もjava.ioを組み込んでおく必要がある
これくらいかな…今日はあと疑問というか知りたいことができた。メソッドごとに配列変数を宣言してるけど、これをクラス全体で共有できないのかなぁと…これだけで随分楽になる気が。
もちょっと勉強進めば出てくるんだろうか。
今日のところはここまで。また勉強の合間に分けていこう…そのうち4つか5つに分けれるといいな。
まず1つ目。
import java.io.*; public class kaimono { /** * @param args * 買った商品の数・品名・価格を入力すると、最小・最高額の品名と * 価格、合計金額、消費税額を表示するプログラム */ public static void main(String args) throws IOException { // TODO Auto-generated method stub //keisanクラスを扱う為の準備 keisan kei = new keisan(); System.out.println ("買い物お疲れ様です。今日はどんな買い物をしてきましたか?"); System.out.println ("購入品の数を入力して下さい"); //入力結果を取得する変数の宣言 int kosuu; //入力するメソッドを呼び出す kosuu = kei.kazu(); System.out.println(kosuu + "個ですね。商品名、価格を入力して下さい"); //品名を価格を代入する配列変数を宣言 String hiname = new String[kosuu]; int nedan[] = new int[kosuu]; //購入数に応じた回数だけ品名と価格を入力するメソッドを呼び出す 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[(kosuu-1)] + "、価格は" + nedan[(kosuu-1)] + "円です"); //合計金額を表示 int sum = 0; for(int m=0; m
続けて2つ目。
import java.io.*; public class keisan{ /** * @param args * 入力・ソート等を行うプログラム */ //変数を宣言 String str1; String str2; int num; int kakaku; int kazu() throws IOException { //入力準備 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); str1 = br.readLine(); num = Integer.parseInt(str1); /* str = br.readLine(); num = Integer.parseInt(str);*/ //0個とか入力するお茶目さんの為に予防策 while(num <= 0){ System.out.println("購入品の数をちゃんと入力して下さい"); str1 = br.readLine(); num = Integer.parseInt(str1); /* str = br.readLine(); num = Integer.parseInt(str);*/ } return num; } String name(int n) throws IOException { //入力用の配列変数を宣言 String hin = new String[num]; //入力準備 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //品名・価格の入力処理を行う System.out.println("品名を入力して下さい"); str2 = br.readLine(); hin[n] = str2; return hin[n]; } int value(int v) throws IOException { //入力用の配列変数を宣言 int en = new int[num]; //入力準備 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //品名・価格の入力処理を行う System.out.println("価格を入力して下さい"); str1 = br.readLine(); kakaku = Integer.parseInt(str1); en[v] = kakaku; return en[v]; } }