Кодирование теоремы Пифагора - PullRequest
0 голосов
/ 25 февраля 2020

Привет, я новичок в java и пытаюсь написать код для решения теоремы Пифагора. Вот что я сделал до сих пор, однако я продолжаю получать ошибки с недопустимым стартером в строке 14, а также с ошибкой «ожидается класс, интерфейс или перечисление» в строке 31.

public class Pythagoras{

    public static void main(String[] args){
        double a1 = 5.2;
        float a = (float)a1;
        double b1 = 8.4;
        float b = (float)b1;
        double c1 = 0;
        float c = (float)c1;

        float resultC = (float)method (c);
        System.out.println(resultC);

        public static float method(float c){
            if (c = 0){
            float result = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
            return result;
            }

            if (b = 0){
            float result = Math.sqrt(Math.pow(c, 2) - Math.pow(a, 2));
            return result;
            }

            if (a = 0){
            float result = Math.sqrt(Math.pow(c, 2) - Math.pow(b, 2));
            return result;
            }
        }
    }
}

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

В java вы не можете иметь метод, определенный внутри другого метода. Вам нужно будет вытянуть метод public static float method(float) из main.

Есть другие fl aws, например:

  1. Здесь: if (c = 0) вы присваивание значения.
  2. method имеет операторы возврата внутри if s, но что, если ни один не ударил? Ничего не возвращается.
  3. (float)method (c) вы переводите на float что-то, что определено как float.
  4. Вместо double a1 = 5.2; float a = (float)a1; почему бы вам не написать float a = 5.2f?
0 голосов
/ 25 февраля 2020

Ваша основная проблема - определение другой функции непосредственно в теле одной функции. Кроме того, вам не нужно создавать столько переменных.

Предполагая, что вы пытаетесь вычислить гипотенузу из перпендикуляра и основания, вы можете сделать это следующим образом:

public class Pythagoras {

    public static void main(String[] args) {
        double p = 5.2;
        double b = 8.4;
        double h = getHypotenuse(p, b);
        System.out.printf("Hypotenuse for p=%.2f and b=%.2f is %.2f", p, b, h);
    }

    public static double getHypotenuse(double p, double b) {
        return Math.sqrt(Math.pow(p, 2) + Math.pow(b, 2));
    }
}

Выход:

Hypotenuse for p=5.20 and b=8.40 is 9.88

В качестве альтернативы

public class Pythagoras {

    public static void main(String[] args) {
        float p = 5.2f;
        float b = 8.4f;
        float h = getHypotenuse(p, b);
        System.out.printf("Hypotenuse for p=%.2f and b=%.2f is %.2f", p, b, h);
    }

    public static float getHypotenuse(float p, float b) {
        return (float) Math.sqrt(Math.pow(p, 2) + (float) Math.pow(b, 2));
    }
}

Выход:

Hypotenuse for p=5.20 and b=8.40 is 9.88
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...