Progate(プログラミング学習サイト)の課題
プロゲートのJavaの課題で、「答え(模範回答例)」とクラス分けているかいないか以外変わらないにも関わらず、エラーが出てしまいます。
出力したいのは、booleanメソッドでbmiが18.5以上25.0未満の時「健康です」、それ以外は「健康ではありません」という文で、ここまでのbmiの値を出力するところまでは前回の課題でクリアしているので正しいと思われます。
発生している問題・エラーメッセージ
Main.java:39 error:
Symbol
if (isHealthy(bmi)){
symbol: variable bmi
location: class Main
1 error
エラーメッセージ
### 該当のソースコード (39行目) if (isHealthy(bmi)) { System.out.println("健康です"); } else { System.out.println("健康ではありません"); } } ・・・ //ちなみに、以下が定義したisHealthyメソッド(booleanを使用) public static boolean isHealthy(double bmi){ return bmi>=18.5 && bmi<25.0; } //以下が全体のコード(長くて見にくかったらすみません) import java.util.Scanner; import java.lang.Math; class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("名前:"); System.out.println("名字:"); System.out.println("年齢:"); System.out.println("身長(m):"); System.out .println("体重(kg):"); String firstName= scanner.next(); String lastName= scanner.next(); int age=scanner.nextInt(); double height= scanner.nextDouble(); double weight= scanner.nextDouble(); printData(firstName, lastName, age, height, weight); } public static double bmi(Double height, double weight){ return weight/height/height; } public static void printData(String firstName, String lastName, int age, Double height, Double weight){ System.out.println("名前は"+ fullName(firstName, lastName) +"です"); System.out.println("年齢は"+ age + "歳です"); if(age>=20){ System.out.println("成年者です"); }else{ System.out.println("未成年者です"); } System.out.println("身長は"+ height +"mです"); System.out.println("体重は"+ weight + "kgです"); System.out.println("BMIは"+ Math.round(bmi(height, weight)) + "です"); if (isHealthy(bmi)) { System.out.println("健康です"); } else { System.out.println("健康ではありません"); } } public static String fullName(String firstName, String lastName){ return firstName + " " + lastName; } public static boolean isHealthy(double bmi){ return bmi>=18.5 && bmi<25.0; } } 言語名 Java ソースコード
試したこと
模範解答はmainメソッド以外のメソッドを別クラスに分けて書いているくらいで
ほぼコード自体は同じになっています。しかし、どうしても39行目にエラーが出てしまい、その理由がわかりません。ちなみに、クラスを分けないとクリアにならない等の指定はこの課題ではないので、それは理由ではないと考えられます。
補足情報(FW/ツールのバージョンなど)
Progateの課題 「Java道場コースI 8.論理演算子を使おう」
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー