ユーザーが画面入力(POST)してきた値を元に、
BMI計算をし、そのBMIを元に体型を判定して、
判定結果を再度、画面に表示するというプログラムを作っています。
ユーザーの入力項目は
身長、体重の2種類のみです。
開発環境はwindows10で統合開発環境であるEclipseを使用
言語はJava、HTML5
-----【構成】-----
このプログラムはMVCモデルによって構成されています。
jspファイルが2つ
・ユーザ入力画面
・入力された情報を元に計算処理などをした結果画面
Javaクラスが3つ
・Logicクラス(BMI計算とその計算結果から体型を判定)
・プロパティクラス(JavaBeansのルールに沿ったもの)
→Healthクラス(フィールドは身長、体重、BMI、体型の4つ)
・コントローラークラス
-----【処理の流れ】-----
コントローラークラスから、
ユーザ入力画面をフォワード。
ユーザーが入力してきた値(POST)を
コントローラクラスでプロパティにつっこむ。
突っ込んだ後にLogicクラスをコントローラクラスで生成し、
計算や条件分岐処理。
その後、リクエストスコープに保存。(コントローラクラスから操作)
結果画面をコントローラクラスからフォワードする。
Logicクラスにて計算処理をした後、
if文にて条件分岐を行うロジックで疑問に思った事があります。
私は後述するコードを作成しました。
しかし、あるテンプレでは
String bodyType;
とローカル変数を定義してから、
各条件分岐後の処理において、私がコーディングしたsetShapeではなく、
bodyType = "痩せ型";
bodyType = …割愛します
の様にコーディングされています。
そして、このif文の処理が終わった後に
health.setShape(bodyType);
としています。
一体何が違うのでしょうか。
下記コードはLogicクラスのコードです。
Java
1public void execute(Health health){ 2 3 //一部抜粋 4 5 //BMI指数から体型を判定して設定 6 if(bmi < 18.5) { 7 health.setShape("瘦せ型"); 8 }else if(bmi >= 18.5 || bmi <25) { 9 health.setShape("普通"); 10 }else { 11 health.setShape("肥満"); 12 } 13}
回答1件
あなたの回答
tips
プレビュー