HOです。


お待たせしました!

(・・・もしかすると待っていませんでしたか(汗))

前回予告していましたとおり、

今週は2記事目の投稿をしたいと思います。



現在、レシピに記述された分量を、自分の作りたい人数分の分量に変換する

「料理分量計算ツール」を作成することを目指しています。

現在は以下の簡単なプログラムを作ろうとしていました。


 ①「特定の人数分の分量」と「知りたい人数」の入力を受け取る

 ②「特定人数分の分量」を、「一人当たりの分量」に変換する

 ③「一人当たりの分量」を、入力された「知りたい人数の分量」に変換する




「特定の人数分の分量」と「分量を知りたい人数」の入力の受け取りをする上で、

まずは、キーボードから入力を受け取る基本的な記述パターンを取り上げたいと思います。



キーボード入力に関する基本的な記述パターン

キーボード入力を受け取るプログラムの例です。

--------------------------------------------------------------------

class InputTest{


 public static void main(String args[]){


  java.io.BufferedReader myReader =

   new java.io.BufferedReader( new java.io.InputStreamReader(System.in),1);



  try{


   System.out.println("文字を入力してください");


   String myString = myReader.readLine();


   System.out.println("入力された文字: " + myString);



  }catch(java.io.IOException e){
  }


 }


}

--------------------------------------------------------------------


以前記述した「Hello! 7korobi8oki!!」というメッセージが表示されるプログラムと比べて、ずいぶん多くの記述がされていますが、

キーボード入力する場合のお決まり文句だと思ってください。




では、ひとつひとつの記述を簡単に分析していきたいと思います。





クラスの宣言



--------------------------------------------------------------------

class InputTest{


}

--------------------------------------------------------------------



これは、プログラムの骨組みの部分で、「クラスの宣言」と言います。

詳しいことは今は考えませんが、

Javaのプログラムを作成するには、

まず何はともあれ上記の記述が必要だということだけ覚えておきましょう。


この記述では「InputTest」というクラスを宣言していますが、

このクラス名ソースファイルの名前(メモ帳で保存する際のファイル名)は、

大文字小文字含めて、一致しなければなりません。

もし一致していないと、実行できません。


宣言されたクラスの範囲は『{}(中括弧)』の範囲となります。

それで、クラスを宣言したなら、続いて『{』ではじめ、『}』で終わるようにします。







mainメソッドの宣言



クラスの中に記述されたものとして以下の記述がありました。

--------------------------------------------------------------------

public static void main(String args[]){


}

--------------------------------------------------------------------



Javaプログラムを実行される際に、最初に実行される部分が、

このmainメソッドという部分です。


メソッドというのは、かなり大雑把に言うと、

特定の処理をするプログラムのことを言います。


Javaプログラムには、必ずこのメソッドを1つ含める必要があります。

pubulic static void main(String args[])~と記述することで、

mainメソッドを宣言しています。


この記述も、現時点では、決まり文句だと考えていただければと思います。

詳しくは、今後プログラムを作成していく上で必要となった時点で考えて行きたいと思います。


mainメソッドの範囲ですが、

クラスの宣言と同じく、『{}(中括弧)』の範囲となります。







命令文の記述



クラスの宣言をし、

そのクラスの中にmainメソッドを宣言したなら、

さらに具体的にコンピュータに実行させる命令文をmainメソッドの中に記述します。

上記の例では、以下のように記述していました。

--------------------------------------------------------------------

java.io.BufferedReader myReader =

new java.io.BufferedReader( new java.io.InputStreamReader(System.in),1);


try{


System.out.println("文字を入力してください");


String myString = myReader.readLine();


System.out.println("入力された文字: " + myString);


}catch(java.io.IOException e){
}

--------------------------------------------------------------------



ここで記述されている内容は、主に

①キーボード入力を求め、

②入力されたなら、その値をそのまま画面に表示する

というものです。



上記の記述でキーボード入力の準備をしている記述は

--------------------------------------------------------------------

java.io.BufferedReader myReader =

new java.io.BufferedReader( new java.io.InputStreamReader(System.in),1);

--------------------------------------------------------------------

という記述です。



そして、キーボード入力を実際に求めて、

その値をコンピュータに一時的に記憶させる記述は、

--------------------------------------------------------------------

String myString = myReader.readLine();

--------------------------------------------------------------------

の部分です。



最後に、入力された値を表示する記述は

--------------------------------------------------------------------

System.out.println("入力された文字: " + myString);

--------------------------------------------------------------------

となります。



今回は詳しい説明を省きますが、

まずはキーボード入力を受け付け、それを表示するには、

以上のような記述が必要だということを覚えておきましょう。







例外処理



最後に残ったのが

--------------------------------------------------------------------

try{


}catch(java.io.IOException e){

}

--------------------------------------------------------------------

という部分です。



どんなソフトでも突然予期せぬエラーが発生することがあります。

使用していたソフトが突然強制終了されて、

データがすべて消えてしまったという悲しい経験をされたことがある人は少なくないと思います。


Javaではこのような予期せぬエラーを「例外」と呼びます。

実行中にこのようなエラーが発生すると、

JREは、どのようなエラーが発生したかを通知するある手段をとります。


その通知に応じて、あらかじめどのような対応をするのかを記述したものを、

例外処理と言います。

try~cacthという記述で、その処理を記述します。


まず 『try{}』 の中で、例外が発生する可能性のある命令文を記述します。

そして、『catch(例外の種類){}』 の中で、例外の種類ごとにどのように対処するか記述します。

複数の例外を記述する場合は、例外の種類分だけ catch文 を記述します。






ここまでで、プログラムの構造について考えてきました。


では、実際にこのプログラムを実行してみたいと思います。


作成したソースファイルを

クラス名と同じ「InputTest.java」というファイル名で保存します。(詳しくはこちら

コマンドプロンプトを起動し、

このファイルを保存した場所に、移動しておきます。(詳しくはこちら

そして、コンパイルし(詳しくはこちら )、実行します。(詳しくはこちらこちら





正しく記述されていれば、以下のように表示されます。
ドリームサポートネットーワークのブログ-f01 InputTest実行1


キーボード入力を求められますので、

ここで、何か文字を入力し、Enterキーを押して、実行します。
ドリームサポートネットーワークのブログ-f02 InputTest実行2


すると、入力された文字をプログラムは受け取り、記憶し、

その記憶した情報に基づいて、結果を表示しています。




ここまでで、キーボード入力を受け付け、

受け取った文字を使って、画面に表示させる流れを考えました。



次回は、この記述をアレンジして、

「特定の人数分の分量」と「知りたい人数」の入力を受け取ろうと思います。









では、今日のポイントをまとめたいと思います。


①プログラムには、「クラスの宣言」が必要

②宣言したクラスの中で最初に実行されるのが「mainメソッドという部分

③メソッドの中で、具体的な実行したい命令文を記述する

④キーボード入力の基本構造は、

  そのための準備する命令文キーボード入力を受け付ける命令文

  受け取った文字を処理する命令文

  そしてエラーが出た場合どう処理するか記述された文(例外処理)。

 から成る。

HOです。


まだまだ夏の暑さが残りますが、お元気でしょうか。


コマンドプロンプト上で動く簡単なアプリ、

料理の分量計算ツールというプログラムを作ることを前回決めました。

このプログラムが目指すところは、

料理のレシピに記述されている分量を、

自分が作りたい分量に変換するというものです。


今日はこのプログラムを具体的にどのような動きにするかを決めたいと思います。


ところで、プログラムというのは、いろいろな作り方があります。

それで、私が今後作成するプログラムは、ひとつの例であり、

別の記述されたプログラムでも目的達成できることがあります。

そのようなわけで、

他にどのような作り方ができるか考えて見ていただくと、

より面白みも出てくるかもしれません。




では、プログラムの作成に入っていきたいと思います。


私のイメージしているのは、

まずは単純な計算ができるプログラムを作り、

それをベースにして徐々に使い勝手が良くなるように

プログラムを改良していこうと思います。




それで、まず最初の目標は、

「特定の人数分の分量」と「知りたい人数」を入力し、実行すると、

単純に、「知りたい人数分の分量」の値が表示される

というプログラムを作ってみたいと思います。


読者の皆さんでしたら、どのようなプログラムの流れを考えられるでしょうか?




私は、大きく分けて以下のような流れを作ろうと思います。


①「特定の人数分の分量」と「知りたい人数」の入力を受け取る

②「特定人数分の分量」を、「一人当たりの分量」に変換する

③「一人当たりの分量」を、入力された「知りたい人数の分量」に変換する



これらをひとつずつJavaでどのように記述できるか考えていきたいと思います。



今日は、ここまでですが、決して記述を楽したわけではありません(笑)

ある程度、区切りがいいので、ここで一記事とさせていただきました。


そのようなわけもあって、ここで予告ですが、毎週1記事を投稿していましたが、

今週は、2記事を投稿したいと思います。

続く記事は、9月20日12時に公開したいと思います。

お楽しみに!(?)

HOです。


前回、コマンドプロンプトを使ったJava開発をする環境を整えました。

今回は、いよいよ具体的なプログラムを作っていきたいと思います。


といっても、何を作るかは悩ましいものです。

自分の身の丈にあったツールを作りたいと思います。


では、どのようなツールを作りましょうか・・・。

私の思いとしては、

作るからには、実用的なものがいいと考えています。


ひとつ思い浮かんだのは、

わたしは料理本を見て、

料理をつくることがあるのですが、

料理の分量について、

人数にあわせた分量を計算することがあります。

この際、人数が多いと、計算が結構大変です。


それで、料理本の分量を入力し、

それを人数分に変更した分量を割り出すというツールを作りたいと思います。


そして分量によっては、単位を変更することもできればなおいいなと思います。


最後に重要な点として、

各材料を入力していき、

その最後にメモ帳などに一覧として書き出ししたいと思います。


名づけて「料理分量計算ツール」とでもしましょうか。


このようなツールを作ってみたいと思います。



さあ、果たして完成できるのでしょうか?

次回以降、このツール作成完成に向けて、

がんばっていきたいと思います。