Przeczytaj w dokumentacji co robi metoda Integer.min(int, int)... Skoro swoją wpisaną liczbę zawsze przyrównujesz do 0 (bo min zainicjowałeś wartością 0), to zawsze min będzie 0 czego byś nie zrobił. Musisz raz na początku pętli przypisać do wartości max i min wpisaną liczbę, a potem ją porównywać z innymi wpisanymi pod kątem czy jest większa/mniejsza.
Aby Ci nie porównywało wpisanego 0 do max/min, wystarczy dać odpowiedni warunek.
Coś w ten deseń:
public static void main(String[] args) {
int liczba = 1;
int max = 0;
int min = 0;
Scanner in = new Scanner(System.in);
while(liczba != 0){
System.out.println("Proszę podać liczbę:");
liczba = in.nextInt();
if(max == 0 && min == 0) {
max = liczba;
min = liczba;
}
if(liczba != 0) {
max = Integer.max(liczba, max);
min = Integer.min(liczba, min);
}
}
System.out.println(max);
System.out.println(min);
}
Z sumą myślę, że sobie poradzisz.