Willkommen zurück zum Kurs der Wissensstadt zum Programmieren in Java. Ich bin Cliff Brozo, ich bin dein Lehrer. Und in der heutigen Lektion wir werden lernen, wie man ein Programm debuggt. Wenn Sie sich erinnern, ist dies das Programm, das wir gerade untersucht haben derjenige, der die switch-Anweisung beinhaltete und die if-Anweisungen und sogar den Kalendermonat herausziehen. In dieses Programm habe ich eine Reihe von Fehlern eingefügt die waren beim letzten Zusammenstellen nicht dabei Lass es uns dieses Mal ausführen und sehen, was passiert. Der erste Fehler, den ich erhalte, zeigt auf Zeile 17 und unten steht main.java 17 und es sagt mir, dass ich einen Fehler gemacht habe dass es keine Aussage ist. Und die Aussage, an der es interessiert ist, ist scan.close. In diesem speziellen Fall, Was wir verstehen müssen ist, dass close eine Funktion ist und alle Funktionen müssen enden mit offenen und geschlossenen Klammern. Also die Tatsache, dass es keine Aussage ist bedeutet wirklich, dass ich reingehen muss direkt nach dem Wort schließen und setzen Sie offene und geschlossene Klammern. Nun, der Trick zum Debuggen eines Programms besteht darin, immer nur eine Änderung vorzunehmen. Selbst wenn du Dinge siehst, die falsch sind, warte, bis der Compiler es dir sagt dass du einen Fehler gemacht hast. Wenn Sie zu viele Änderungen vornehmen, du könntest am Ende etwas ändern, das richtig ist und es in etwas zu verwandeln, das nicht richtig ist. Also nehmen wir eine Änderung nach der anderen vor. Lassen Sie uns neu kompilieren. Es zeigt jetzt auf Zeile 52, und ich scrolle nach unten zu Zeile 52, und es sagt Unterschied == dein Monat - Monat + 1. Bei diesem Fehler müssen wir uns erinnern dass es einen Unterschied zwischen dem Gleichheitszeichen gibt und das Gleichheitszeichen. Die Gleichheitsprüfungen auf Gleichheit während das einzelne Gleichheitszeichen fügt einen Wert in die linke Seite der Gleichung ein. In diesem Fall, das einzige Mal, dass ich ein doppeltes Gleichheitszeichen verwenden würde ist mit einer if-Anweisung oder einer while-Anweisung bei jedem anderen Vorkommen, Ich möchte ein einzelnes Gleichheitszeichen verwenden dass ich das Ergebnis dieser Berechnung nehme das ist dein Monat minus dem Monat plus eins, und setze es in die variable Differenz ein. Und das mache ich mit einem einzigen Gleichen. Wie gesagt, eine Änderung und Neukompilierung, Java-Zeile 66 sagt, dass es ein Fehler ist und es erreichte beim Parsen das Ende der Datei. Was ist denn hier los ist, dass mir eine enge geschweifte Klammer fehlt und die IDE versucht uns zu helfen indem Sie diese vertikalen Linien in die uns helfen, diese Klammern auszurichten. Und wenn ich diesem ganz nach oben folge, Ich kann sehen, dass diese Nähe entsprechend ist zu meiner öffentlichen static void main String Args Routine. Schau in Zeile vier und ich habe ein offenes und es gibt keinen entsprechenden Abschluss. So wie der Compiler durchlief und den gesamten Code überprüfend, erreichte es das Ende der Datei. Und es fand keine enge geschweifte Klammer. Also lege ich einen rein und ich denke, dass ich fertig bin weil nur noch ein Fehler übrig ist, aber ich irre mich. Ich habe es eingefügt und es sagt immer noch das gleiche. Hm, das ist eine interessante Sache weil ich diesen Code gerade korrigiert habe und es gab mir den gleichen Fehler. Wenn das passiert, musst du zurückgehen und nachsehen und überprüfen um sicherzustellen, dass alle Ihre offenen Klammern haben entsprechende enge Klammern. Ich werde an die Spitze des Programms gehen. Ich habe eine offene, ich habe zwei offene, Zeilen vier und Zeile sechs, Zeile 23 hat ein open für die switch-Anweisung. Und ich folge diesen Zeilen nach unten und ich sehe, dass es keinen Abschluss für die switch-Anweisung gibt. Java weiß das also nicht, was Java weiß ist, dass es nur eine ungleichmäßige Anzahl von engen Klammern gibt. Und es heißt, ich habe das Ende der Datei erreicht und ich habe die Endklammer nicht gefunden. Also werde ich einen reinstecken und wieder einmal denke ich, ich bin fertig. Oh nein, bin ich nicht. Ich habe diesen einen Fehler behoben und jetzt habe ich eins, zwei, drei, vier, fünf, sechs, sieben acht, neun, fast jede Zeile wird zu einem Fehler. Und hier geraten Sie in Panik. Ich habe 20 Fehler, als ich nur einen hatte. Wie kommt es dazu? Nun, der Computer weiß es nicht die Details jeder Zeile, bis sie fertig ist das gesamte Programm durchgehen, Stellen Sie sicher, dass alle Ihre Routinen richtig geöffnet und geschlossen werden. Als es das letzte Mal kompiliert wurde und mir sagte, dass ich einen Fehler hatte, Ich habe diesen einen Fehler eingefügt und jetzt hieß es in Ordnung, Ich gehe rein und schaue mir jede Zeile einzeln an. Das müssen wir jetzt also tun. Meine erste Zeile spricht mit mir und sagt, Linie drei, Hauptklasse der öffentlichen Klasse. Klasse main ist öffentlich, es sollte in einer Datei namens main Java deklariert werden. Nun, das ist ein Hinweis hier, Haupt-Java ist ein Hinweis darauf, wie die Dateien benannt werden sollen. Aber in meinem Fall habe ich eine Datei namens Main.java mit Großbuchstaben M. Es sagt mir also, dass dieses M ein Großbuchstabe sein muss. Also setze ich ein großes M ein. Wie gesagt, obwohl ich weiß, dass ich 19 weitere Fehler habe, ich werde neu kompilieren weil eine Änderung mehrere Fehler verursachen kann. Jetzt bringt es mich zurück zu Zeile eins und es sagte, Fehler kann Symbol nicht finden. Und der kleine Hinweis hier das heißt, hier wurde es durcheinander gebracht. Es war auf der Suche nach einem Symbol der Klasse des Scanners. Und in diesem speziellen Fall Nun, ich habe Scanner nicht mit einem großen S buchstabiert und Groß-/Kleinschreibung ist wichtig. Ich mache daraus ein großes S, kompiliere es erneut. Jetzt sagt es mir, Zeile 15 sagt es mir dass es das Symbol Scanner.nextInt nicht finden kann, und es sucht und es gibt keinen Scanner. Ich habe meinen Scanner-Scan genannt, nicht Scanner. Der richtige Code lautet also Scan.nextInt.