![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
かなりピンチの学生です(>_<)この前質問したのですが禁止事項にひっかかったので削除ました↓↓プログラム途中マデ頑張ったのですがやっぱりわかりません。
名前、身長、体重をデータメンバとし、身長と体重のデータから肥満度を判定し、判定結果を文字列で返すhanteiからなるクラスManを作りなさい。
・BMI=体重(kg)÷身長(m)の2乗
・BMIとは
やせ 20未満
正常 20以上24未満
やや肥満 24以上26.5未満
肥満 26.5以上
ヒントを参考に頑張ったのですが解りません…()で囲んだトコは自分で考えたのですがホトンド間違ってます。途中から進まないので教えて下さいpublic class Sokutei {
public static void main(String[] args) {
(Man[] m = new Man[5];)
m[0] = new Man("Bill",1.89,69);
m[1] = new Man("Lisa",1.70,87);
m[2] = new Man("Alice",1.55,63);
m[3] = new Man("Machilda",1.60,56);
m[4] = new Man("Joe",1.75,55);
for( int i = 0; i < m.length; i++){
( System.out.println(m[i]+":"+ m[i].hantei());)
}
}
}
class Man{
private String name;
private double height,weight;
public Man(String a ,double b ,double c){
(name=a;)
(heigth=b;)
(weigth=c;)
}
public String hantei(){
( double hantei = weigth / heigth / heigth;)
( if(hantei<20){)
(System.out.println("やせ");)
( })
( else if(20 <= hantei && hantei<24){)
( System.out.println("正常");)
( })
( else if(24 <= hantei && hantei<26.5){)
(System.out.println("やや肥満");)
( })
( else{)
(System.out.println("肥満");)
( })
}
}
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
前のお二人の指摘を参考に修正してまだ出来ないときはこのコードを試してください。
public class Sokutei {
public static void main(String[] args) {
Man[] m = new Man[5];
m[0] = new Man("Bill",1.89,69);
m[1] = new Man("Lisa",1.70,87);
m[2] = new Man("Alice",1.55,63);
m[3] = new Man("Machilda",1.60,56);
m[4] = new Man("Joe",1.75,55);
for( int i = 0; i < m.length; i++){
System.out.println(m[i].getName() +":"+ m[i].hantei());
}
}
}
class Man{
private String name;
private double height, weight;
public Man(String a ,double b ,double c){
name = a;
height = b;
weight = c;
}
public String getName(){
return name;
}
public String hantei(){
double hantei = weight/(height * height);
if(hantei<20){
return "やせ";
}
else if(20 <= hantei && hantei<24){
return "正常";
}
else if(24 <= hantei && hantei<26.5){
return "やや肥満";
}
else{
return "肥満";
}
}
}
No.2
- 回答日時:
学生さんなら、結構いいソースだと思いますよ。
問題点を列挙します。
・変数名
Manクラス内の変数名がばらばらです。
ロジック云々以前の問題ですね。
この程度は修正してから、ソース提示してほしいところです。
・System.out.println(m[i]+":"+ m[i].hantei());
「m[i]」はManクラスのインスタンスをそのまま出力しようとしているだけです。
文字羅列が出力されていますよね。
欲しいのは、Manクラスの変数nameに格納されている値だと思います。
privateな変数ですので、アクセッサを作成しましょう。
例:public String getName() {
return name;
}
次に「m[i].hantei()」の部分ですが。
Man#hantei()はStringを戻り値とするように宣言されています。
しかし、return句が存在しませんね。
根本的にエラーです。
修正例:System.out.println("XXX"); → return "XXX";(Manクラス内の全部の箇
所)
上記作成した上で、出力部分を、
System.out.println(m[i].getName()+":"+ m[i].hantei());
で出力はされると思われます。
んー、キーワードとして、
・インスタンス
・カプセル化
・戻り値
の部分の理解が足りないので困っておられると推測します。
ここからはご質問内容とは関係ないのですが、
ソースを提示する際に、余計な「()」は見づらいだけだと思います。
また、コンパイルエラーはもう少し減らしてから出しましょう。
このレベルのソースを作ろうとされている質問者様でしたら、
ご自分で減らす事も可能だと思います^^
No.1
- 回答日時:
SokuteiクラスでnewしてManを呼び出していますが、これでは各値を設定しただけで、なにもアクションが帰ってきませんよね。
せっかくhantei()メソッドを作ったのですから呼び出してあげてください。あと、hantei()メソッドに返り値Stringが設定されていますが、なにもreturnしていませんね。『判定結果を文字列で返す』のであれば、sysoutで出力しないでStringで返してあげましょう。きっとコンパイル時にたくさんのエラーが出ていることと思います。エラーの意味をきちんと理解することが大切です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java final 1 2022/06/10 22:49
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を動的に利用するには?
-
Javaでlog4jを使ってログ出力を...
-
プログラミングの問題です。大...
-
コンストラクタの引数の中のnew?
-
中カッコ{}だけの記述について
-
カプセル化の利点
-
C# DatagridviewにExcelシート...
-
NoSuchMethodErrorが解決できま...
-
Socketの接続のタイムアウトを...
-
2進数から10進数への変換方法
-
複数ホストからのデータの受け...
-
getActualMaximum(Calendar.DAY...
-
日本語が文字コードによっては...
-
C言語のポインターに関する警告
-
javaで質問です。 文字列2023/2...
-
flush()とclose()について
-
Java配列でNullPointerExceptio...
-
JSPやサーブレットでSystem.out...
-
ループ処理の際、最後だけ","を...
-
ダブルクォーテーションのrepla...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
プログラミングの問題です。大...
-
中カッコ{}だけの記述について
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
Socketの接続のタイムアウトを...
-
コンストラクタの引数の中のnew?
-
javaのプログラミングで作るRPG...
-
System.exit()の値を取得したい
-
JSP/Servletのパラメータの受け...
-
Processing :指定フォルダ内の...
-
javaで特定の文字列から特定の...
-
インタフェイス実装と抽象クラ...
-
Javaで日本語の出力が文字化けする
-
randomで
-
StringクラスのcompareToメソッド
-
【初心者です】javaで平均値を...
-
DESを使用した暗号化/復号化処...
-
初心者なので教えてほしいです。
-
ArrayList でスタックを
おすすめ情報