0

プログラムの目的は、ユーザー入力を指定して、体積、表面積、面積、または円周のいずれかを計算することです。私はまだ特定のものをループする方法を理解しようとしていますが、ここに私の本当の問題があります:

プログラムを実行しようとすると、上記のエラーが発生します。また、ユーザーが知りたい最終情報(プログラムが計算したもの)をユーザーに通知する終了メッセージを配置するreturnステートメントも表示されます。

私の主な問題である「...double型の結果を返さなければならない」に対する答えをいただければ幸いです。ここで述べた他のことへの助けも大いに役立ちます。

また、適切にフォーマットされたコードは非常に煩わしいものです。4スペースの間隔を空けるように指示することで、それが何を意味するのかわかりません。実行して機能するたびに、誰かが常に編集します。これは非常に直感に反します。

import java.io.*;
public class circlemethods
{
    public static void main (String [] args) throws IOException
    {
      BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in));
      String numInput;  
      String reqInput;
      int num;
      int numInt = 0;
      System.out.println("This program will ask for a given user radius, then proceed to calculate the req");
      System.out.println("The program will use several methods to achieve this, all calling back to the main method");
      System.out.println("Press any key to continue");
      numInput = myInput.readLine();
      System.out.println("First, what would you like to calculate?");
      System.out.println("Enter '1' for Circumference, '2' for area, '3' for volume, or '4' for surface area");
      reqInput = myInput.readLine();
      numInt = Integer.parseInt (reqInput);
      System.out.println("Now enter the radius of the required shape");
      numInput = myInput.readLine();
      num = Integer.parseInt (numInput); 
    }
    public static  double circumference(double volume, double surfacearea, double area,  double radius) throws IOException {
      int numInt = 0;
      int num = 0;
      double circumference;
      for (int i = 0; i < volume ; i++) {
        if (numInt == 1)
        {
          System.out.println("You chose to calculate circumference, given the radius :"+ num );
          circumference = (3.14) * (2) * (num);
          return  circumference;
        }
        if (numInt == 2)
        {
          System.out.println("You chose to calculate area, given the radius:" + num);
          area = (3.14)*(num)*(num);
          return area;
        }
        if (numInt == 3)
        {
          System.out.println("You chose to calculate volume, given the radius:" + num);
          volume = 4/3 * (3.14)*(num)*(3)*(3)*(3);
          return volume;
        }      
        if (numInt == 4)
        {
          System.out.println("You chose to calculate surface area, given the radius:" + num);
          surfacearea = 4*(3.14)*(num)*(2)*(2);
          return surfacearea;
        }
        else
        {
          System.out.println("Invalid entry, please restart the program");  
        }
      }
    }
  }
4

1 に答える 1

0

メソッドは常に double を返す必要があります。次のようなことを試してください:

...

 if (numInt == 4)
 {
   System.out.println("You chose to calculate surface area, given the radius:" + num);
   surfacearea = 4*(3.14)*(num)*(2)*(2);
   return surfacearea;
 }

 else
 {
   return -1;
 }

メソッドの呼び出し元は結果をチェックし、結果が 0 より小さい場合、失敗したことを認識し、以下を出力します。

 System.out.println("Invalid entry, please restart the program");

編集:

ループにまったく入っていない場合、メソッドは -1 を返す必要があります

于 2013-03-16T20:04:35.973 に答える