!!! This Page Is Made By Shift JIS !!!
○考察
今回のプログラムで行っている処理の中に
整数を各位に分けるという処理があります、これは
例えば
12345だった場合は
一の位=5
十の位=4
百の位=3
千の位=2
万の位=1
という処理を行います、
最初この処理する時に考えたのは
数字をString型の配列に入力させて下の位から入れていこうとしたのですが
それだと
金額の計算がめんどうくさくなってしまうので
数字はInt型で分割しようとしました
int型は小数点以下は省くと言う性質があるので
b=a%10とやれば一番下のくらいの数字が得られるはずです。
簡単なプログラムを作って確認してみました
---------------------------------------------------------------------
public class bbb{
public static void main(String args[]){
int a=12345,b,c;
b=a;
do{
c=b%10;
System.out.println(c);
b=b/10;
}while(b!=0);
}
}
----------------------------------------------------------------------
5
4
3
2
1
-----------------------------------------------------------------------
と上記のようにこの計算方法で各位に分ける事ができた
○考察2
入力部のあるプログラム
Javaで初めてユーザーが『入力』するという処理を行いました。
C言語のようにScanf関数やgets関数等のように簡単にできるかと思っていたけど
Javaの場合はする事がCの3倍近くあることが分かったのでそれを調べてみました
1、Input/Outputストリームを読み込まなければならない
2、例外処理を必ずしなければならない
3、読み込めるデータ型は基本はbyte型なのでプログラム中で変換しなければならない
1、Input/Outputストリーム
C言語でいうStdio.hの事で入出力する時に読み込まなければいけないもの
具体的にはjava.ioパッケージをimportします今回のプログラムでは
java.io.*を読み込み全てのクラスを読み込みました。(クラスを一つづつ読み込むのはめんどくさいので)
入力部のあるプログラムを作る時には必ず読み込まなければならない
『呪文』のようなものです
2、例外処理を必ずしなければならない
Javaで入力する場合は必ず例外処理=エラーの時の処理をしなければいけません
例外処理をする制御分は
try〜catchかthrowsを使います。
これを行わないとコンパイルすらできないのでこれも
『呪文』のようなものです。
3,途中で変換しなければいけない
javaは16ビットの文字コード(Unikode)を使っているので
8ビットコードを使っているファイル等(ほとんどのファイルが8ビットコード)を使う時は
途中で変換しないとダメです。
しかも初期状態では入力できるデータ型はバイト型のみです。
バイト型を扱うのはめんどくさいのでString型で入力できると楽です
バイト型を文字型にするには
InputStreamReader を使います
しかしこれだけだと一文字づつ読み込むので効率が悪いです
それを解消するために
BufferedReader クラス を使う必要があります
ただこれを読み込むたびに指定するのはめんどくさいので
入力データ読み込み用のプログラムを作成しとくと楽になります
それが
BufferedReader myReader =
new BufferedReader(
new InputStreamReader(System.in),1);
これです
これも入力部があるプログラムでは
決まり事のようなものなので覚えておいた方が良いでしょう。
○反省&感想
自分で問題を作れ!
もの凄い抽象的な課題だったのでど〜うしようかなと思っていました。
ど〜して販売機のプログラムをやろうかと思ったのかと言うと
昔、高校の時に受けた情報技術者検定?試験?
の問題に出て来た中で一番難しい問題だったので
『あ、なんか販売機のプログラム見た事あるな〜』
と思い出したので作ってみたいと思ったからです。
プログラミング1の時に
『君のプログラム、、、、変』って先生に言われた事があったので
ちょっと心配ですけど、、、どうです?
プログラムって作る人の個性っていうか、くせみたいなものがあって
同じ結果のプログラムでも中身を見てみると全然違うって事がよくあるから
穴埋め問題はどうしようかな〜と迷いました、やっぱ変です?
参考文献
http://itbtech.itboost.co.jp/java/java_06.php
http://lecture.ecc.u-tokyo.ac.jp/~ktanaka/programming03/1014-4.html
http://www1.odn.ne.jp/sapost/Jlesson6.html
http://milkyway.merseine.nu/Java/Java.html
もくじへ