Как я могу включить функции и методы в мои условия if-else в Java? - PullRequest
0 голосов
/ 20 апреля 2020

Я могу запустить программу, которая вычисляет периметр фигуры и использует условия if-else, чтобы определить, какая это фигура. Однако я изо всех сил пытаюсь соединить мои условия if-else с функциями и методами.

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int sideA;
    int sideB;
    int sideC;
    int sideD;
    int perimeter = 0;

    System.out.println("Enter side 1: ");
    sideA = scan.nextInt();

    System.out.println("Enter side 2: ");
    sideB = scan.nextInt();

    System.out.println("Enter side 3: ");
    sideC = scan.nextInt();

    System.out.println("Enter side 4: ");
    sideD = scan.nextInt();

    System.out.println("Forms a square with a perimeter of " + perimeter);
    System.out.println("Forms a rectangle with a perimeter of " + perimeter);
    System.out.println("Does not form a rectangle or square.");
}

private static int add(int sideA, int sideB, int sideC, int sideD) {     
    int perimeter = sideA + sideB + sideC + sideD;
    return perimeter;
}

private static void isSquare(int sideA, int sideB, int sideC, int sideD, int perimeter) {
if (sideA == sideB && sideB == sideC && sideC == sideD && sideD == sideA) {
        System.out.println("Forms a square with a perimeter of " + perimeter);
    }

    else if (sideA == sideC && sideB == sideD) {
        System.out.println("Forms a rectangle with a perimeter of " + perimeter);
      }

    else if (sideA == sideB && sideC == sideD) {
        System.out.println("Forms a rectangle with a perimeter of " + perimeter);
      }

    else if (sideA == sideD && sideB == sideC) {
        System.out.println("Forms a rectangle with a perimeter of " + perimeter);
      }

    else {
        System.out.println("Does not form a rectangle or square.");
    }
}

У программы, над которой я сейчас работаю, есть проблемы с достижением конца файла при синтаксическом анализе. Как мне улучшить этот конец файла, чтобы моя программа завершила его анализ?

Ответы [ 3 ]

0 голосов
/ 20 апреля 2020

я имею в виду, что вам следует подумать о вызове ваших методов add, а isSquare, возможно, переместит ваши переменные за пределы main, чтобы они имели больше возможностей

    add(sideA,sideB,sideC,sideD);
    isSquare(sideA,sideB,sideC,sideD,perimeter);
0 голосов
/ 20 апреля 2020

У вас нет файлов здесь. Но, как я правильно понимаю, вы должны вызывать свои функции из основного метода System.out.println("Forms a square with a perimeter of " + add(sideA, sideB, sideC, sideD);, а также sideA == sideB && sideB == sideC && sideC == sideD && sideD == sideA то же, что sideA == sideB && sideB == sideC && sideC == sideD (транзитивность a = b = c => a = c)

0 голосов
/ 20 апреля 2020

Ваш код выглядит нормально, вы должны просто вызывать ваши методы из метода main:

// code inside main
    // remove line System.out.println("Forms a square with a perimeter of " + perimeter);
    // remove line System.out.println("Forms a rectangle with a perimeter of " + perimeter);
    // remove line System.out.println("Does not form a rectangle or square.");
    perimeter = add(sideA, sideB, sideC, sideD);
    isSquare(sideA, sideB, sideC, sideD, perimeter);  // this method prints results

// end of main method

Пожалуйста, также убедитесь, что весь ваш код упакован в некоторый класс :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...