Не работает if. Помогите, написал что-то не то

Вроде всё верно написано, а в консоли, при вводе правильных значений, пишет "Предел скоростиКритическое давлениеВсё в норме", а должен "Всё в норме" Задача (На вход функции поступают данные с некоего объекта: скорость движения (в км/ч) и давление (в единицах физ. атм.). Функция выполняет анализ данных следующим образом:

  1. Если скорость превышает 50 км/ч, то выводится сообщение Предел скорости.

  2. Если объект не двигается и давление больше или равно двум атмосферам, то выводится сообщение Критическое давление.

  3. В противном случае выводится сообщение Всё в норме.)

import java.util.Scanner;
public class First_Task {
    
    static void Header() {
        System.out.println("Анализ показателей");
        System.out.println("-----------------");
    }
    static int InputNumber(String caption) {
        System.out.print(caption);
        Scanner sc = new Scanner(System.in);
        return sc.nextInt();
     }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //title
            Header();
            
        //data entry
                int n1 = InputNumber("Введите скорость движения (в км/ч) : ");
                int n2 = InputNumber("Введите давление (в единицах физ. атм.): ");
                
        //Result            
            if (n1 > 50)
            System.out.print("Предел скорости");
            else
                System.out.print("");
            
            if (n2<=0 && n2>=2); 
            System.out.print("Критическое давление");
            
        
            System.out.println("Всё в норме");
            
    }

}

Ответы (2 шт):

Автор решения: Алексей Р
String status = "Всё в норме";
if (n1 > 50) status = "Предел скорости";
if (n1 == 0 && n2 >= 2) status = "Критическое давление";
System.out.println(status);

Можно реализовать одной строкой через тернарный оператор:

System.out.println((n1 > 50) ? "Предел скорости" : ((n1 == 0 && n2 >= 2) ? "Критическое давление" : "Всё в норме"));
→ Ссылка
Автор решения: DmitryK

Потому что лишние точка с запятой и невыполнимое условие.

if (n1 > 50)
    System.out.print("Предел скорости");
else
    System.out.print("");
            
if (n2<=0 && n2>=2);  // после if стоит ;
// кроме того - условие никогда не выполняется
// видимо должно быть
if (n2<=0 || n2>=2)

System.out.print("Критическое давление");
System.out.println("Всё в норме");

видимо вы хотели написать так:

if (n1 > 50)
    System.out.print("Предел скорости");
else
if (n1==0 && n2>=2) 
    System.out.print("Критическое давление");
else
    System.out.println("Всё в норме");

но вариант из ответа @АлексейР c переменной status - красивее.

→ Ссылка