Java - сумма переменных - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь написать код, который будет суммировать 2 переменные, однако, если обе переменные имеют одно и то же значение, он должен возвращать сумму, в два раза превышающую сумму.

Я не понимаю, как я получаю сообщение об ошибке при неправильном запускевыражения

Ниже приведен код, который я создал:

    public class Main {
      public int sumDouble(int a, int b) {
        if (a==b) {
          return ((a+b)*2);
        }
        else {
          return (a+b);
        }
      public static void main(String[] args) {
      System.out.println(Main.sumDouble(1, 2));
      System.out.println(Main.sumDouble(3, 2));
      System.out.println(Main.sumDouble(2, 2));
     }

   }

Я ожидал получить следующие результаты:

    System.out.println(Main.sumDouble(1, 2)); = 3
    System.out.println(Main.sumDouble(3, 2)); = 5
    System.out.println(Main.sumDouble(2, 2)); = 8

Но я получаю сообщение об ошибке с неверным текстомначало выражения.

Main.java:9: error: illegal start of expression
  public static void main(String[] args) {
  ^
Main.java:9: error: illegal start of expression
  public static void main(String[] args) {
         ^
Main.java:9: error: ';' expected
  public static void main(String[] args) {
               ^
Main.java:9: error: '.class' expected
  public static void main(String[] args) {
                                   ^
Main.java:9: error: ';' expected
  public static void main(String[] args) {
                                       ^
Main.java:14: error: reached end of file while parsing
}
 ^
6 errors
compiler exit status 1

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я полагаю, что вы видите ошибку, потому что вы не создали ни одного объекта вашего класса Main и получили прямой доступ к функции-члену.

2 Решения:

  1. Создание экземпляра объекта Main class:

    Main mMainObj = новый Main ();

    mMainObj.sumDouble (1,2);

  2. Сделать sumDouble статической функцией.

0 голосов
/ 22 мая 2019
public class Main {


    public static int sumDouble(int a, int b) {
        if (a == b) {
            return ((a + b) * 2);
        } else {
            return (a + b);
        }
    }

    public static void main(String[] args) {
        System.out.println(sumDouble(1, 2));
        System.out.println(sumDouble(3, 2));
        System.out.println(sumDouble(2, 2));
    }

}

После вашего метода sumDouble (...) пропала скобка.Кроме того, этот метод должен быть статическим, чтобы иметь возможность вызывать его из статического метода main.

Если вы не хотите делать метод sumDouble(...) статическим, вы можете создать новый объект Main и вызвать методэтот объект.Это будет выглядеть так:

package test;

public class Main {


    public int sumDouble(int a, int b) {
        if (a == b) {
            return ((a + b) * 2);
        } else {
            return (a + b);
        }
    }

    public static void main(String[] args) {
        Main mainObject = new Main();
        System.out.println(mainObject.sumDouble(1, 2));
        System.out.println(mainObject.sumDouble(3, 2));
        System.out.println(mainObject.sumDouble(2, 2));

    }
}
...