Keine Rechtschreibfehler (auch wenn ich welche gefunden habe :P) aber ein paar Tipps die du beachten oder auch ignorieren kannst.
1. Du musst innerhalb der if nicht explizit zum Boolean casten. Durch das "==", "<", ">=" usw. wird das automatisch zum Boolean. Du kannst zum Beispiel folgendes sagen:
Code:
boolean isSmaller = (input - zahl) <= -1
oder halt auch
Code:
if((input -zahl) <= -1){...}
2. Du kannst die Werte direkt vergleichen ohne die Werte zu subtrahieren. Das ist schneller und deutlicher.
Code:
if (intput == zahl)
3.
Code:
try {
throw new UnknownErrorException("404 Unbekannter Fehler");
} catch (UnknownErrorException e1) {
e1.printStackTrace();
}
Dieses Konstrukt ergibt keinen Sinn, du wirst einen Fehler und behandelst ihn noch im gleichen Abschnitt. Ohne weitere SChritte zu machen. Im Normal würde das so aussehen:
Code:
try {
//mache irgendetwas das einen Fehler erzeugen könnte
} catch(SomeException exc) {
//versuche vom Fehler zu erholen und stabilen Zustand wieder herzustellen
}
Exceptions sollten niemals zur Flusskontrolle verwendet werden. Wenn du deine eigene Exception werfen willst wird das so gemacht:
Code:
try{
intput = reader.nextInt(); // Scans the next token of the input as an int.
}catch(Exception e){
throw new UnknownErrorException("404 Unbekannter Fehler");
}
Dann brauchst du auch den Input nicht mehr auf 5 setzen. Ein "throw new UnknownErrorException" sorgt dafür, dass aus dem Programmfluss ausgebrochen wird und das Programm, sofern der Fehler nicht anderswo behandelt wird, beendet wird.
Code:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
try
{
final int zahl = 5; // Werte die sich nicht ändern kann man final setzen, um spätere Probleme zu verhindern.
System.out.println("Willkommen zum Zahlenratespiel!!!\nGib hier deine Zahl ein!!!\n");
Scanner reader = new Scanner(System.in);
System.out.print("Enter a number: "); //print macht keinen Zeilenumbruch. Ist aber nur Kosmetik für die Konsole
int intput = 0;
try
{
intput = reader.nextInt();
} catch (Exception e)
{
throw new UnknownErrorException("Fehler beim Einlesen.");
} finally // finally blöcke werden immer am Ende von Try oder Catch ausgeführt, unabhängig ob try oder catch verwendet wurde
{ // benutze diese um zum Beispiel Ressourcen zu schließen oder Verbindungen zu trennen.
reader.close(); // Reader und auch Writer sollten geschlossen werden, wenn diese nicht mehr benötigt werden.
}
if (intput == zahl) //direkter Vergleich
{
System.out.println("Richtig!!!");
} else if (intput < zahl) //direkter Vergleich
{
System.out.println("Zu klein!!!");
} else if (intput > zahl) //direkter Vergleich
{
System.out.println("Zu groß!!!");
}
} catch (UnknownErrorException uneex)
{
System.out.println("Das sollte nicht passieren");
uneex.printStackTrace();
}
}
}