Programme wählen Abläufe anhand von Bedingungen. Ein Vergleich ergibt einen boolean. Bei primitiven Zahlen prüft == den Wert. Bei Objekten prüft == dagegen, ob dieselbe Referenz verwendet wird. Diese Unterscheidung ist besonders bei Text wichtig. Wir kombinieren eine Mengenprüfung mit einem Textvergleich.
01Zahlen vergleichen
count > 0 && count <= 100 verlangt, dass beide Bedingungen zutreffen. || genügt eine wahre Bedingung. if und else wählen den passenden Block. Die Klammern und geschweiften Klammern gehören zur Syntax.
public class Main {
public static void main(String[] args) {
int count = 3;
String status = "READY";
if (count > 0 && count <= 100 && "READY".equals(status)) {
System.out.println("Start batch");
} else {
System.out.println("Cannot start");
}
}
}
Starten / prüfen
java Main.java02Textinhalt vergleichen
"READY".equals(status) vergleicht den Inhalt. Der feste Text steht links, damit auch ein null-Wert rechts sicher zu false führt. status.equals(...) würde bei null eine Exception auslösen.
03Grenzen testen
Setze count auf 0, 1, 100 und 101. Die zulässigen Randwerte sollen eindeutig sein. Ein späterer Batchauftrag unterscheidet außerdem mehrere Zustände statt nur READY und nicht READY.
Bei 3 und READY: Start batch
Deine Übung
Setze status auf new String("READY"). Vergleiche equals mit ==.
Lösung mit Erklärung anzeigen
equals liefert weiterhin true. == vergleicht Referenzen und liefert für das neu erzeugte Objekt gegenüber dem Literal false. Verwende für fachliche Textvergleiche equals.
Projektbezug und Quellen
Das Beispiel ist zum Lernen vereinfacht. Die verlinkte Codeversion zeigt die Anwendung im Projekt und die dortigen Prüfungen.