重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

プログラマーの達人という本の問題をといていたのですがどうしても<double calc = 2 * basis(amt) + extra(amt) *1.05; >のbasisとextraの部分のエラーが消えなくて困っています。
エラーの内容は「シンボルが見つかりません シンボル:メソッドbasis(double) 場所:クラスrefactoring.main」と書いてあります。優しい方々どうか教えてください。

//演習問題
//38.以下のコードは何年もかけて幾度と無く修正されてきたものですが、
// その構造にまで遡ることなく変更されてきたことは明らかです。リファクタリングしてください。
//
// if (state == "TEXAS") {
// rate = TX_RATE;
// amt = base * TX_RATE;
// calc = 2 * basis(amt) + extra(amt) * 1.05;
// else if ((state == "OHIO") || (state == "MAINE")) {
// rate = (state == "OHIO") ? OH_RATE : MN_RATE;
// amt = base * rate;
// calc = 2 * basis(amt) + extra(amt) * 1.05;
// if (state == "OHIO") {
// points = 2;
// }
// } else {
// rate = 1;
// amt = base;
// calc = 2 * basis(amt) + extra(amt) * 1.05;

//私の回答
public class Main {
System.out.println("州を入力してください");
System.out.println("1:TEXAS,2:OHIO,3:MAINE");
int state = KeyBoard.readInt();
double rate;
double amt;
System.out.println("料金を入力してください");
double base = KeyBoard.readDouble();
switch (state) {
case 1:
System.out.println("テキサス州のレートを入力してください");
double TX_RATE = KeyBoard.readDouble();
rate = TX_RATE;
break;
case 2:
System.out.println("オハイオ州のレートを入力してください");
double OH_RATE = KeyBoard.readDouble();
rate = OH_RATE;
break;
case 3:
System.out.println("マイアミ州のレートを入力してください");
double MN_RATE = KeyBoard.readDouble();
rate = MN_RATE;
break;
default:
rate = 1;
int points = 2;
}
amt = base * rate;
double calc = 2 * basis(amt) + extra(amt) *1.05;
System.out.println("計算結果:" + calc);
}

A 回答 (1件)

正しい解答は どんな回答を行えばよいのかわからないので、



 エラーの意味だけ。

 内容:
  呼び出してるメソッドがどこにも みつからないので エラーになっています。


 回避方法:
  public double basis(double amt){処理}
public double extra(double amt){処理}

 のメソッドを 追加すると コンパイル問題は解決します。。

  basis と extra で それぞれどんな処理を行うのか分からないので
  この程度の回答で ごめんなさい。。。

この回答への補足

とりあえずエラーはなくなったんですけど、どんな処理をするプログラムかがよくわかりません><

補足日時:2010/08/18 12:25
    • good
    • 0
この回答へのお礼

回答ありがとうございます☆
おかげさまでエラーは消えました!!
どうもありがとうございます。

お礼日時:2010/08/18 12:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!