-1

私はJavaが初めてです。ポリゴンの面積を求めるプログラムを作成しました。ポリゴンの種類を尋ねてから、面積を見つけたかったのです。if、else if、else ステートメントを使用しましたが、ポリゴンの名前を入力しても何も起こりません。

ここにスクリプトがあります

 import java.util.Scanner ;
  public class Area

   {
      static Scanner sc = new Scanner(System. in );

      public static void main(String[] args) {

          System.out.print("Enter the type of polygon: ");
          String polygon = new String("polygon");
          polygon = sc.next();
          String square = new String("square");
          String rectangle = new String("rectangle;");
          String triangle = new String("triangel");



          polygon = sc.next();
          if (polygon == square) {

              double side;
              System.out.print("Enter the side: ");
              side = sc.nextDouble();
              double area;
              area = side * side;
              System.out.print("The Area is: " + area);
          } else if (polygon == rectangle) {
              double length;
              double breadth;
              System.out.print("Enter the length: ");
              length = sc.nextDouble();
              System.out.print("Enter the breadth: ");
              breadth = sc.nextDouble();
              double area;
              area = length * breadth;
              System.out.print("The Area is : " + area);
          } else if (polygon == triangle) {

              double base;
              double height;
              System.out.print("Enter the base: ");
              base = sc.nextDouble();
              System.out.print("Enter the height: ");
              height = sc.nextDouble();
              Double area;
              area = base * height / 2;
              System.out.print("The Area is: " + area);
          } else {
              System.out.print("ERROR it is not a polygon");
          }

      }
  }

私を助けてください、ありがとう

4

2 に答える 2

0

わかりました、あなたのコードで物事を行うためのより良い方法がいくつかあります。
入力を文字列と比較するためだけに String オブジェクトを作成する必要はありません。次のように使用できます:
if(polygon="square")

または、switch ステートメントを使用することもできます。
問題が発生している理由は、.nextLine() の代わりに .next() を使用しているためだと思います。
switch ステートメントを使用して、次のことを行います。

Scanner sc = new Scanner(System. in );
myInput = sc.nextLine() // Get the next line from the keyboard
switch (myInput.toLowerCase()) // Make the inputted text to lower case, do switch 
{
    case "square":
        // DO SQUARE LOGIC HERE
        break;

    case "rectangle":
        // DO RECT LOGIC HERE
        break;

    case "triangle":
        // DO TRIANGLE LOGIC HERE
        break;
    default:
        // Did not recognize the type of polygon entered.
}
于 2013-07-21T03:55:26.423 に答える