Java, Programmieren

Hallo, ich komme bei folgender Aufgabe nicht weiter, weswegen ich Eure Hilfe benötige:

Schreiben Sie eine Applikation, bei der eine per Zufallsgenerator erzeugte
Zahl zwischen 0 und 20 erraten werden muss. Das Erraten der Zahl erfolgt
über eine Dialogbox. Dieser Vorgang soll solange wiederholt werden, bis die
Zahl erraten wurde. Bei jedem missglückten Rateversuch soll angegeben
werden, ob die eingegebene Zahl größer oder kleiner als die zu erratende
Zahl ist. Wird die Zahl erraten soll ebenfalls ein entsprechender Text
ausgegeben werden.
a) Verwenden Sie zur Erzeugung der Zufallszahl die Methode
nextInt(int i) der Klasse Random.
b) Verwenden Sie zur Erzeugung der Zufallszahl die Methode random()
der Klasse Math.
Hinweis: Verwenden Sie eine while-Schleife und als Schleifenbedingung eine
Variable vom Typ Boolean.

Ich bin bislang noch nicht wirklich weit gekommen:

public static void main(String[] args) {

String eingabe;
int i;
int zahl;

final Random r = new Random ();
i = r.nextInt(21);

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie eine Zahl zwischen 0 und 20 ein“);
zahl = Integer.parseInt(eingabe);

while (true)
{
JOptionPane.showMessageDialog(null,„Glückwunsch! Sie haben die Zahl richtig erraten“);
}

}
}

Ich weiß nicht wie ich die einzelnen Bedingungen alle in eine while-Schleife verarbeiten soll.

So ungefähr?

String eingabe;
final Random r = new Random();
int i = r.nextInt(21);
int zahl;

while (true)
{
eingabe = JOptionPane.showInputDialog(„Bitte geben Sie eine Zahl zwischen 0 und 20 ein“);

zahl = Integer.parseInt(eingabe);

if (i == zahl)
{
JOptionPane.showMessageDialog(null, „Glückwunsch!Sie haben die Zahl richtig erraten“);
break;
}
}

Hinweis: Verwenden Sie eine while-Schleife und als
Schleifenbedingung eine
Variable vom Typ Boolean.

Seh ich jetzt erst, dann müsstest du es so ähnlich machen:

boolean noch_nicht_erraten = true;

while(noch_nicht_erraten)
{

if(i == zahl)
{
bla
noch_nicht_erraten = false;
}
}
}