Если оператор не обновляет приватное поле в том же классе - PullRequest
0 голосов
/ 26 марта 2019

поэтому у меня есть этот код из класса:

private int velocity = 0;

public void velocityManagement(int speed){
        if (speed > 0){
            System.out.println("Pressing gas pedal");
            velocity += speed;
            System.out.println("Velocity increased to " + velocity + " km/h");
        } else{
            System.out.println("Pressing break");
            velocity -= speed;
            System.out.println("Velocity decreased to " + velocity + " km/h");
        }

Вот как я использую его в основном классе:

car.velocityManagement(10);
car.velocityManagement(15);
car.velocityManagement(-20);

Ожидаемый результат:

  • Нажатие педали газа
  • Скорость увеличена до 10 км / ч
  • Нажатие педали газа
  • Скорость увеличена до 25 км / ч
  • Нажатие на перерыв
  • Скорость уменьшена до 5 км / ч

Фактическая мощность:

  • Нажатие педали газа
  • скорость увеличена до 10 км / ч
  • скорость нажатия педали газа
  • скорость увеличена до 25 км / ч
  • скорость нажатия
  • скорость уменьшена до 45 км/ ч

1 Ответ

6 голосов
/ 26 марта 2019

Вы вычитаете отрицательное число, когда скорость отрицательна, это то же самое, что и добавление положительного числа:

// When speed is negative, this corresponds to adding 
// the absolute value of speed to velocity
velocity -= speed;

Вместо этого вы должны добавить это отрицательное число. Только оператор print должен быть в операторе if else.

public void velocityManagement(int speed){
        if (speed > 0){
            System.out.println("Pressing gas pedal");
            System.out.println("Velocity increased to " + velocity + " km/h");
        } else{
            System.out.println("Pressing break");
            System.out.println("Velocity decreased to " + velocity + " km/h");
        }
        velocity += speed;
}

Best

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