0

私のコードでは、ユーザーはこの方法で指定された温度範囲を入力します (デフォルトの範囲は 0 ~ 100 です)。

public class range {   
     public void rangeset ()
      {
        int range1 = 0;
        int range2 = 100;

        System.out.println("Please note that the default temp range is 0-100");
        System.out.println("What is the starting temperature range?");
        range1 = sc.nextInt();
        System.out.println("What is the ending temperature range?");
        range2 = sc.nextInt();
        System.out.println("Your temperature range is " + range1 + " - " + range2);  

      HW_5.mainMenureturn();

    }//end rangeset method (instance method)

}//range class

さらに下には、華氏に変換する数値をユーザーに求める入力があります。

public class HW_5 {
   public static double fahrenheit2Centigrade  ()
    {
        double result;
        BigDecimal quotient = new BigDecimal("1.8");


        //take in input, take input as BigDecimal
        System.out.println("Please enter the fahrenheit temperature you wish to convert to celsius");   
        BigDecimal fah = sc.nextBigDecimal();

     }
}

したがって、私がやりたいことは、入力された数値 (BigDecimal) が他のメソッドで指定された範囲内に収まるようにすることです。

1) 2 つの値を返すことができないため、 rangesetメソッドが範囲の開始番号と範囲の終了番号を返すようにするにはどうすればよいですか?

2) これらの戻り値を使用して、華氏2 摂氏メソッドの BigDecimal がそれらの値の範囲内にあるかどうかを確認するにはどうすればよいですか?

説明を求めてください。ありがとう。

4

1 に答える 1

1

これは範囲の問題です。現在、rangeset() メソッド内で 2 つの範囲変数を宣言しています。つまり、それらはメソッドの「スコープ」内でのみ表示されます (別名、そのメソッドのみがそれらの変数にアクセスできます)。

考慮すべきことは、代わりにこれらの変数をクラス全体から見えるようにすることです。

public class range {   
     private int lowerBound;
     private int upperBound;

     public void rangeset ()
      {
        int lowerBound = 0;
        int upperBound = 100;

        System.out.println("Please note that the default temp range is 0-100");
        System.out.println("What is the starting temperature range?");
        lowerBound = sc.nextInt();
        System.out.println("What is the ending temperature range?");
        upperBound = sc.nextInt();
        System.out.println("Your temperature range is " + range1 + " - " + range2);  

         HW_5.mainMenureturn();

       }//end rangeset method (instance method)

    public int getLowerBound()
    {
        return lowerBound;
    }

    public int getUpperBound()
    {
        return upperBound;
    }

}//range class

このように設定したらrange、メイン クラスに新しいクラスを作成し、関連するメソッドを呼び出し、getter メソッドを使用して必要なデータを抽出できます。何かのようなもの:

public class HW_5 {
   public static double fahrenheit2Centigrade  ()
    {
        double result;
        BigDecimal quotient = new BigDecimal("1.8");
        range myRange = new range();
        myRange.rangeset();
        System.out.printf("%d - %d", myRange.getLowerBound(), myRange.getUpperBound());


        //take in input, take input as BigDecimal
        System.out.println("Please enter the fahrenheit temperature you wish to convert to celsius");   
        BigDecimal fah = sc.nextBigDecimal();

     }
}

Ps。一般に、クラス名の先頭には大文字を使用する必要があります。Rangeの代わりにrange

于 2012-10-08T20:28:20.697 に答える