Eclipse Eclipse: Unreachable code

Guenter123987

Bekanntes Mitglied
Das ist die Klasse:
Java:
public class KeyCodeGenerator {
   
   public long currentKeyCode;
   int currentDigitIndex = 0;
   
   public KeyCodeGenerator() {
       this.currentKeyCode = 0L;
   }
   
   public long nextKeyCode() {
       if (currentKeyCode < 9999L) {
           currentKeyCode++;
           return currentKeyCode;
       } else {
           return -1L;
       }
   }
   
   public int[] nextKeyCodeInArray() {
       if (currentKeyCode < 9999L) {
           currentKeyCode++;
           
           int[] currentIndexDigits = new int[4];
           currentIndexDigits[0] = (int) ( currentKeyCode / 1000L)       ;
           currentIndexDigits[1] = (int) ((currentKeyCode / 100L ) % 10L);
           currentIndexDigits[2] = (int) ((currentKeyCode / 10L  ) % 10L);
           currentIndexDigits[3] = (int) ( currentKeyCode          % 10L);
           return currentIndexDigits;
       } else {
           return null;
       }
   }
   
   public int nextDigit() {
            if (currentDigitIndex == 0) { currentDigitIndex++; return (int) ( currentKeyCode / 1000L)       ; }
       else if (currentDigitIndex == 1) { currentDigitIndex++; return (int) ((currentKeyCode / 100L ) % 10L); }
       else if (currentDigitIndex == 2) { currentDigitIndex++; return (int) ((currentKeyCode / 10L  ) % 10L); }
       else if (currentDigitIndex == 3) { currentDigitIndex=0; return (int) ( currentKeyCode          % 10L); this.nextKeyCode(); }
       else { return -1; }
   }
}
Das Problem liegt in der nextDigit-Methode bei diesem Befehl:
Java:
this.nextKeyCode()
Hier wird die Fehlermeldung "Unreachable code" angezeigt. Warum? Danke im Voraus.
 

Joose

Top Contributor
Kleiner Tipp: Formatiere den Code besser, dann wird er nicht nur für dich sondern auch für andere lesbarer.
Vor allem in deiner Methode "nextDigit()" ist schwer ersichtlich wieviele Statements da jeweils in einem Block stehen.

Folgender Code ist 1:1 deiner, aber um einiges lesbarer ;)
Java:
public int nextDigit() {
   if (currentDigitIndex == 0) {
       currentDigitIndex++;
       return (int) (currentKeyCode / 1000L);
   } else if (currentDigitIndex == 1) {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 100L) % 10L);
   } else if (currentDigitIndex == 2) {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 10L) % 10L);
   } else if (currentDigitIndex == 3) {
       currentDigitIndex = 0;
       return (int) (currentKeyCode % 10L);
       this.nextKeyCode();
   } else {
       return -1;
   }
}
 

Guenter123987

Bekanntes Mitglied
Für mich war der Vorgänger lesbarer aufgrund der Kompaktheit, aber ich schreibe die Befehle in Zukunft immer in einzelne Zeilen, wenn das euch beim Lesen hilft.
 

krgewb

Top Contributor
Schau mal wie akribisch er jedes einzelne Leerzeichen positioniert hat:
Java:
   public int nextDigit() {
            if (currentDigitIndex == 0) { currentDigitIndex++; return (int) ( currentKeyCode / 1000L)       ; }
       else if (currentDigitIndex == 1) { currentDigitIndex++; return (int) ((currentKeyCode / 100L ) % 10L); }
       else if (currentDigitIndex == 2) { currentDigitIndex++; return (int) ((currentKeyCode / 10L  ) % 10L); }
       else if (currentDigitIndex == 3) { currentDigitIndex=0; return (int) ( currentKeyCode          % 10L); this.nextKeyCode(); }
       else { return -1; }
   }


PS: Wenn du so etwas hast:
Java:
public int nextDigit() {
   if (currentDigitIndex == 0) {
       currentDigitIndex++;
       return (int) (currentKeyCode / 1000L);
   } else if (currentDigitIndex == 1) {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 100L) % 10L);
   } else if (currentDigitIndex == 2) {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 10L) % 10L);
   } else if (currentDigitIndex == 3) {
       currentDigitIndex = 0;
       return (int) (currentKeyCode % 10L);
       this.nextKeyCode();
   } else {
       return -1;
   }
}
dann kannst du es auch so machen:

Java:
public int nextDigit() {
   if (currentDigitIndex == 0) {
       currentDigitIndex++;
       return (int) (currentKeyCode / 1000L);
   }

   else if (currentDigitIndex == 1) {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 100L) % 10L);
   }

   else if (currentDigitIndex == 2) {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 10L) % 10L);
   }
 
   else if (currentDigitIndex == 3) {
       currentDigitIndex = 0;
       return (int) (currentKeyCode % 10L);
       this.nextKeyCode();
   }

   else {
       return -1;
   }
}
Wenn du den Code dann von Eclipse formatieren lässt werden die Leerzeilen nicht entfernt.
 

Thallius

Top Contributor
Genau und ich gehe sogar noch einen Schritt weiter und verwende die alte Klammer-Syntax weil ich sie einfach viel schöner zu lesen finde

Code:
public int nextDigit()
{
   if (currentDigitIndex == 0)
   {
           currentDigitIndex++;
       return (int) (currentKeyCode / 1000L);
   }
   else if (currentDigitIndex == 1)
   {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 100L) % 10L);
   }
   else if (currentDigitIndex == 2)
   {
       currentDigitIndex++;
       return (int) ((currentKeyCode / 10L) % 10L);
   }
   else if (currentDigitIndex == 3)
   {
       currentDigitIndex = 0;
       return (int) (currentKeyCode % 10L);
       this.nextKeyCode();
   }
   else
       return -1;
}

Ich habe nie verstanden was der Sinn der neuen Syntax ist? Das sparen eine Zeile? Der Block beginnt mit { und endet mit }.Davor steht die Bedingung wann dieser Block abgearbeitet wird. Warum soll die Klammer auf also in der Gleichen Zeile stehen wie die Bedingung? Ich finde das einfach viel unleserlicher.

Aber wahrscheinlich gewöhnt man sich irgendwann dran. Nur ich habe da keinen Bock drauf :)


Gruß

Claus
 

Joose

Top Contributor
Für mich war der Vorgänger lesbarer aufgrund der Kompaktheit, ....
Wenn du damit besser zurecht kommst, dann kannst du natürlich dabei bleiben. Du musst dich zurecht finden in deinen Code.
....aber ich schreibe die Befehle in Zukunft immer in einzelne Zeilen, wenn das euch beim Lesen hilft.
Es war nur eine Anmerkung dass andere sich leichter tun beim Code lesen + verstehen wenn man sich an allgemeine Konventionen hält. Auch hast du den Vorteil das viele Tutorials oder Code Schnipsel auf den unterschiedlichsten Webseiten sich im groben an die allg. Konventionen halten. Dadurch würdest du dir auch leichter tun diesen Code zu verstehen.

dann kannst du es auch so machen:
.....
Wenn du den Code dann von Eclipse formatieren lässt werden die Leerzeilen nicht entfernt.
Noch unleserlicher und die Leerzeilen zerstören den Zusammenhang vom if/elseif.

Genau und ich gehe sogar noch einen Schritt weiter und verwende die alte Klammer-Syntax weil ich sie einfach viel schöner zu lesen finde
Finde ich auch ;) leider ist es in Java nicht üblich deswegen habe ich mich für Java an die üblichere Schreibweise gewöhnt.
In C# schreibe ich weiterhin die Klammern in eigene Zeilen.

Ich habe nie verstanden was der Sinn der neuen Syntax ist? Das sparen eine Zeile? Der Block beginnt mit { und endet mit }.Davor steht die Bedingung wann dieser Block abgearbeitet wird. Warum soll die Klammer auf also in der Gleichen Zeile stehen wie die Bedingung? Ich finde das einfach viel unleserlicher.
Ich auch nicht wirklich. Oft will mir wer erklären man erkennt den Block ja auch anhand der Einrückung, dann lässt aber wer mal Klammern weg die Einrückung stimmt dann vielleicht nicht (wegen fehlenden Autoformat) und schon muss man extra kontrollieren ist die Klammer da oder nicht usw.
 

thecain

Top Contributor
Ist doch einfach eine Frage der Gewohnheit...

Ich lese schon sehr lange Java Code, deswegen sieht der Java Code Style halt für meine Augen besser aus...

Irgendetwas esoterisches würde ich trotzdem vermeiden, wenn jemand anders an meinem Code arbeiten soll...
 

mrBrown

Super-Moderator
Mitarbeiter
Ist doch die gleiche Diskussion, wie snake_case vs camelCase ;)

Solange man sich beim zusammenarbeiten auf eines einigen kann ist doch alles gut. Ansonsten wird halt einmal autoformatiert...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Eclipse hängt sich auf Allgemeine Java-Themen 7
lewbue Eclipse Eclipse Dateinamen in Hieroglyphen Allgemeine Java-Themen 4
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
thor_norsk Eclipse - Fehlermeldung - JavaFX Allgemeine Java-Themen 24
Viper13125 Eclipse Hängt sich auf, wenn ich SimpelDateFormat drin lasse Allgemeine Java-Themen 2
M Eclipse unter Linux Lite Allgemeine Java-Themen 2
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
T Eclipse Synchronisierung mit Github Allgemeine Java-Themen 9
d.lumpi JDA eclipse dateien versenden Allgemeine Java-Themen 4
1Spinne JDK 8 für Eclipse installieren Allgemeine Java-Themen 5
d.lumpi net.* pakete importen (Eclipse) Allgemeine Java-Themen 2
B BOT mit Java [Eclipse] programmieren Allgemeine Java-Themen 7
ReinerCoder Eclipse Fehlermeldung - The constructor Double(double) is deprecated Allgemeine Java-Themen 8
M Probleme bei Eclipse wenn ich entpacke Allgemeine Java-Themen 15
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
R @author vor Methode (eclipse) Allgemeine Java-Themen 1
M JAVA API in Eclipse auf deutsch Allgemeine Java-Themen 18
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
D Eclipse Export Allgemeine Java-Themen 15
Q Eclipse Escape Sequenzen Farbe ändern Allgemeine Java-Themen 4
X Eclipse Kann fann/j nicht in Eclipse linken... Allgemeine Java-Themen 6
A Eclipse Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 7
L SQL Datei in Eclipse erstellen Allgemeine Java-Themen 3
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
L Compiler-Fehler Eclipse Error: A JNI error has occured Allgemeine Java-Themen 3
P Compiler-Fehler Eclipse Allgemeine Java-Themen 5
T Eclipse IDE Plugin Error Log Allgemeine Java-Themen 0
M Java Eclipse- Datei exportieren Allgemeine Java-Themen 5
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
xYurisha Eclipse, Projekt beschädigt! Allgemeine Java-Themen 6
F JFrame fü Eclipse wie? Allgemeine Java-Themen 6
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
M Java Eclipse in der Uni Allgemeine Java-Themen 8
S Eclipse TestNG Default Test umbenennen Allgemeine Java-Themen 0
S TestNG Eclipse: Reporting erstellen/ verändern Allgemeine Java-Themen 0
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
S Eclipse exit code 805306369 Allgemeine Java-Themen 1
T iText mit eclipse richtig in Java-Projekt einbinden Allgemeine Java-Themen 2
V Eclipse .class Dateien Allgemeine Java-Themen 9
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
T 32-Bit Applikationen mit Eclipse erstellen Allgemeine Java-Themen 4
N ZIp datei direkt im eclipse speichern Allgemeine Java-Themen 4
N Eclipse Dynamisches-Web-Project auf anderen Rechner transportieren Allgemeine Java-Themen 5
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
T Ant Jar Datei per Ant in Eclipse erstellen Allgemeine Java-Themen 2
N Eclipse Projekt von GitHub in bestehendes Projekt einbinden Allgemeine Java-Themen 13
S Eclipse Annotation Processor in Eclipse einbinden Allgemeine Java-Themen 0
T Eclipse Dll einbinden java.lang.UnsatisfiedLinkError nur in Eclipse nicht via javac Allgemeine Java-Themen 1
K eclipse Workspace ändern Allgemeine Java-Themen 2
S FileReader-Problem in Eclipse Allgemeine Java-Themen 8
K ImageJ in eclipse Allgemeine Java-Themen 2
D Java Datei nach Eclipse Export funktioniert nicht Allgemeine Java-Themen 0
HoloYoitsu Kann .dll nur aus Eclipse heraus laden Allgemeine Java-Themen 7
M Modularisierung in Eclipse Equinox Allgemeine Java-Themen 0
P GIT- Bitbucket - Eclipse Allgemeine Java-Themen 3
Shido JDK installieren Eclipse - Fehlermeldung Allgemeine Java-Themen 4
V Eclipse Ich kann bei eclipse nicht schreiben Allgemeine Java-Themen 1
Z JVM komplett tot - Eclipse + Browser gehen nicht + Screenshots Allgemeine Java-Themen 1
S BMI Rechner mit eclipse Visual Editor (Seperates Fenster) Allgemeine Java-Themen 7
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
F Eclipse cache vorhanden? Allgemeine Java-Themen 5
P Eclipse langsam/unbrauchbar bei größeren Quelldateien? Allgemeine Java-Themen 8
S Externe Eclipse Projekte dynamisch einbinden Allgemeine Java-Themen 3
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
G Befehl funktioniert in Eclipse allerdings nicht in einer Jar-Datei Allgemeine Java-Themen 3
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
X Registrierung eines Ecore-Models außerhalb der Eclipse-Umgebung Allgemeine Java-Themen 0
W getResources funktioniert nur in Eclipse, nicht in JAR Allgemeine Java-Themen 2
B Classpath Eclipse findet importierte Klassen nicht Allgemeine Java-Themen 1
E Erste Schritte JOCL in Eclipse Allgemeine Java-Themen 5
G Warnung in der Konsole von Eclipse "WARNING: ..." Allgemeine Java-Themen 2
O 3D-Grafik java3D in eclipse verwenden Allgemeine Java-Themen 0
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
F Eclipse Eclipse kompiliert nicht mehr die aktuellen Dateien Allgemeine Java-Themen 2
J Compiler-Fehler Compiliert unter Eclipse aber nicht mit javac Allgemeine Java-Themen 0
K Eclipse compiled .Jar - Fehlerhaft? Allgemeine Java-Themen 2
B View communication eclipse Allgemeine Java-Themen 17
S XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR Allgemeine Java-Themen 4
S Eclipse Abhängigkeiten zwischen den Projekten in Eclipse Allgemeine Java-Themen 2
L Erste Schritte Eclipse und Lokal funktioniert - in HTML nicht! Allgemeine Java-Themen 2
U Eclipse Java Projekt - Webservice einbinden Allgemeine Java-Themen 7
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
F eclipse, texlipse, R und mysql Allgemeine Java-Themen 2
TheWhiteShadow Eclipse auf deutsch Allgemeine Java-Themen 11
E Eclipse jar-Export Allgemeine Java-Themen 26
MiMa Quelllcode in Eclipse gelöscht Allgemeine Java-Themen 11
J Bilder in Eclipse überlappen Allgemeine Java-Themen 4
F Suche kostenlose GUI für Eclipse Allgemeine Java-Themen 10
Fl4sh1 Autovervollständigungfenster geht nicht (eclipse) Allgemeine Java-Themen 10
R Aus Eclipse Projekt ein UML erzeugen Allgemeine Java-Themen 3
P JDK installieren Mac OS X - JDK7 in Eclipse Juno verwenden Allgemeine Java-Themen 3
P wieso kann ich auf bluej exportieren aber auf eclipse nicht? Allgemeine Java-Themen 2
H Mit Ant erstelltes jar funktioniert nicht wie direkt in Eclipse Allgemeine Java-Themen 8
J Eclipse Javadoc mit Eclipse erstellen Allgemeine Java-Themen 10
S Access Restrictions in Eclipse auf Code beschraenken (und nicht fuer Comments) Allgemeine Java-Themen 2
A Classpath ResourceBundle Problem bzgl. Pfade bzw. Pfade (auch in Eclipse) generell? Allgemeine Java-Themen 7
B Schnittstelle von Facebook zu Java(Eclipse) für meine Internetseite Allgemeine Java-Themen 20
P Eclipse Java RCP mit Eclipse e4 - sinnvoll? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben