Warum funktioniert mein Code nicht?

Alen123

Mitglied
Java:
import java.util.Scanner;
public class NameundAlter{
 public static void main(String[] args){
   Scanner alen = new Scanner(System.in);
     System.out.println("Hallo, willkommen zum Geburtsjahr-Berechner! Geben sie bitte zu erst ihren Namen ein.");
     System.out.println(" ");
       String name = alen.next();
     System.out.println("Geben sie nun bitte ihr Geburtsjahr ein.");
       int jahr = alen.nextInt();
     System.out.println(" "); 
     System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
     System.out.println(" ");
       String ja = alen.next();
       String nein = alen.next();
       int x = 2022 - jahr;
       int c = 2021 - jahr;
          if(ja == "ja") {
          System.out.println("Hallo "+name+", Sie sind "+x+" Jahre alt"); }
         
          else if(nein == "nein") {
          System.out.println("Hallo "+name+", Sie sind "+c+" Jahre alt"); }
   
     System.out.println(" ");
     System.out.println("Danke für die Verwendung!");
 }
}
 
Zuletzt bearbeitet von einem Moderator:

uuu3uuu

Aktives Mitglied
Zu dem, was schon gesagt wurde... Mach es doch nicht so kompliziert:

Java:
    public static void main(String[] args) {
        Scanner alen = new Scanner(System.in);
        System.out.println("Hallo, willkommen zum Geburtsjahr-Berechner! Geben Sie bitte zu erst Ihren Namen ein:");
        String name = alen.nextLine();
        System.out.println("Geben Sie nun bitte Ihr Geburtsjahr ein:");
        int jahr = alen.nextInt();
        System.out.println("Gib 1, 2 oder 3 ein, wenn du vor heute, nach heute oder heute Geburtstag hast:");
        int option = alen.nextInt();
        int x = 2021 - jahr + (option >= 2 ? 1 : 0);
        System.out.println("Hallo " + name + ", Sie sind " + x + " Jahre alt");
        System.out.println("Danke für die Verwendung!");
    }
 

Oneixee5

Top Contributor
Ein Nutzer versteht anhand deiner Meldung nicht, dass du hier 2 Eingaben erwartest:
1.) String ja = alen.next();
2.) String nein = alen.next();
Java:
    System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
    System.out.println(" ");
    String ja = alen.next();
    String nein = alen.next();
    ...
    if (ja == "ja") {
        System.out.println("Hallo "+name+", Sie sind "+x+" Jahre alt");
    } else if(nein == "nein") {
        System.out.println("Hallo "+name+", Sie sind "+c+" Jahre alt");
    }
    ...
Es wäre sinnvoller nur eine Eingabe auszuwerten:
Java:
    System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
    String eingabe = alen.next();
    if (eingabe.equalsIgnoreCase("ja") || eingabe.equalsIgnoreCase("j")) {
        System.out.println("Hallo "+name+", Sie sind "+x+" Jahre alt");
    } else if (eingabe.equalsIgnoreCase("nein") || eingabe.equalsIgnoreCase("n")) {
        System.out.println("Hallo "+name+", Sie sind "+c+" Jahre alt");
    } else {
        System.out.println("Falsche Eingabe!");
    }
 

Alen123

Mitglied

Zu dem, was schon gesagt wurde... Mach es doch nicht so kompliziert:

Java:
    public static void main(String[] args) {
        Scanner alen = new Scanner(System.in);
        System.out.println("Hallo, willkommen zum Geburtsjahr-Berechner! Geben Sie bitte zu erst Ihren Namen ein:");
        String name = alen.nextLine();
        System.out.println("Geben Sie nun bitte Ihr Geburtsjahr ein:");
        int jahr = alen.nextInt();
        System.out.println("Gib 1, 2 oder 3 ein, wenn du vor heute, nach heute oder heute Geburtstag hast:");
        int option = alen.nextInt();
        int x = 2021 - jahr + (option >= 2 ? 1 : 0);
        System.out.println("Hallo " + name + ", Sie sind " + x + " Jahre alt");
        System.out.println("Danke für die Verwendung!");
    }
Vielen Dank für die Antwort! Bin leider noch sehr früher Java-Anfänger, und kenne nicht viele Befehle. Danke für die Hilfe!
 

Alen123

Mitglied
Ein Nutzer versteht anhand deiner Meldung nicht, dass du hier 2 Eingaben erwartest:
1.) String ja = alen.next();
2.) String nein = alen.next();
Java:
    System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
    System.out.println(" ");
    String ja = alen.next();
    String nein = alen.next();
    ...
    if (ja == "ja") {
        System.out.println("Hallo "+name+", Sie sind "+x+" Jahre alt");
    } else if(nein == "nein") {
        System.out.println("Hallo "+name+", Sie sind "+c+" Jahre alt");
    }
    ...
Es wäre sinnvoller nur eine Eingabe auszuwerten:
Java:
    System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
    String eingabe = alen.next();
    if (eingabe.equalsIgnoreCase("ja") || eingabe.equalsIgnoreCase("j")) {
        System.out.println("Hallo "+name+", Sie sind "+x+" Jahre alt");
    } else if (eingabe.equalsIgnoreCase("nein") || eingabe.equalsIgnoreCase("n")) {
        System.out.println("Hallo "+name+", Sie sind "+c+" Jahre alt");
    } else {
        System.out.println("Falsche Eingabe!");
    }
Danke für die Antwort! Bin leider noch nicht so gut im Umgang mit Java. War mir eine große Hilfe!
 
G

Gelöschtes Mitglied 65838

Gast
dann sag halt was nicht geht...

deswegen auch meine dämliche antwort
natorllich "mein code geht nicht" ... du kommst ja auch nicht hierher wenn du ne lösung hast sondern nur mit problemen das ist ja shcon klar
 

Neumi5694

Top Contributor
Beschreibe mal, was du erwartest und was du stattdessen kriegst.

Oft löst man das Problem schon allein dadurch, dass man es ordentlich beschreibt.

"Geht nicht" gibt's nicht.
 

uuu3uuu

Aktives Mitglied
Nix is unmöglich ;)

Java:
String shutdownCmd = "shutdown -s";
Process child = Runtime.getRuntime().exec(shutdownCmd);

Kinder, bitte nich nachmachen :D
 
G

Gelöschtes Mitglied 65838

Gast
Nix is unmöglich ;)

Java:
String shutdownCmd = "shutdown -s";
Process child = Runtime.getRuntime().exec(shutdownCmd);

Kinder, bitte nich nachmachen :D
du weist aber von außerhalb immernoch nicht WANN der command ausgeführt wird, könntest ja ne while true schleife davor haben :)
 

berndoa

Top Contributor
Bei diesem Codepart geht es schon los:
Java:
       String ja = alen.next();
       String nein = alen.next();

Auch ohne große Rückmeldung sehe ich da schon dass da 2 mal eine Eingabe gefordert wird und jeweils in der Variable ja und der Variable nein gespeichert wird.
Was sehr sinnfrei ist.

Der Nutzer wundert sich nur warum er 2 mal dasselbe eintippen soll bzw. warum überhaupt nochmal eine Eingabe.

Wenn du dir das Leben einfahc machen willst (und dem Nutzer weniger) würde ich hier sogar fast eine boolean Variable empfehlen, wobei da wieder Umformungen nötig wären
Aber gut, String geht auch.
aber nur eine Variable dann wo eben die Eingabe drin gespeichert ist und später mit
Java:
Eingabevariable.equals("ja") oder

Eingabevariable.equals("nein")
getestet wird welcher Fall vorliegt.
Genauso sind die nachfolgenden 2 Variabeln x und c sinnfrei, weil es einfacher geht.
Fachleute hier machen sowas natürlich als Einzeiler, ich hätte sowas wie

[CODE lang="java" title="int int vergleichsjahr=()"]int vergleichsjahr=(Eingabevariable.equals("ja"))?2022:2021;
int Alter=vergleichsjahr-jahr;
[/CODE]


Eine Variante die ich gerne mache ist einen bedingungsabhängigen "Faktor" zu nutzen, der in deinem Fall 1 oder 0 ist, sodass die gewünschten jahre 2022 und 2021 sich als 2021+faktor shcrieben lassen.
Also sowas wie:

Java:
int faktor=(Eingabevariable.equals("ja"))?1:0;
int Alter=vergleichsjahr-2021-faktor;

Aber das ist vermutlich nur mein persönlicher, schlechter Programmierstil, also besser nicht als Vorbild nehmen.
Natürlich statt dem ternären operator mit dem ? und : drin kann man das auch lang ausschreiben als if else Konstrukt
 

Oneixee5

Top Contributor
Bei diesem Codepart geht es schon los:
Java:
       String ja = alen.next();
       String nein = alen.next();

Auch ohne große Rückmeldung sehe ich da schon dass da 2 mal eine Eingabe gefordert wird und jeweils in der Variable ja und der Variable nein gespeichert wird.
Was sehr sinnfrei ist.

Der Nutzer wundert sich nur warum er 2 mal dasselbe eintippen soll bzw. warum überhaupt nochmal eine Eingabe.

Wenn du dir das Leben einfahc machen willst (und dem Nutzer weniger) würde ich hier sogar fast eine boolean Variable empfehlen, wobei da wieder Umformungen nötig wären
Aber gut, String geht auch.
aber nur eine Variable dann wo eben die Eingabe drin gespeichert ist und später mit
Java:
Eingabevariable.equals("ja") oder

Eingabevariable.equals("nein")
getestet wird welcher Fall vorliegt.
Genauso sind die nachfolgenden 2 Variabeln x und c sinnfrei, weil es einfacher geht.
Fachleute hier machen sowas natürlich als Einzeiler, ich hätte sowas wie

[CODE lang="java" title="int int vergleichsjahr=()"]int vergleichsjahr=(Eingabevariable.equals("ja"))?2022:2021;
int Alter=vergleichsjahr-jahr;
[/CODE]


Eine Variante die ich gerne mache ist einen bedingungsabhängigen "Faktor" zu nutzen, der in deinem Fall 1 oder 0 ist, sodass die gewünschten jahre 2022 und 2021 sich als 2021+faktor shcrieben lassen.
Also sowas wie:

Java:
int faktor=(Eingabevariable.equals("ja"))?1:0;
int Alter=vergleichsjahr-2021-faktor;

Aber das ist vermutlich nur mein persönlicher, schlechter Programmierstil, also besser nicht als Vorbild nehmen.
Natürlich statt dem ternären operator mit dem ? und : drin kann man das auch lang ausschreiben als if else Konstrukt
In Java werden Variablen klein geschrieben: "Eingabevariable" ist also kein valider Variablenname. Statt equals sollte man den Text mit equalsIgnoreCase vergleichen oder die Eingabe vorher explizit in Kleinbuchstaben umwandeln. Andernfalls müsste man jede Variante mit equals vergleichen.
Solche Vergleiche sind auch schlecht: int vergleichsjahr=(Eingabevariable.equals("ja"))?2022:2021; Bei einer Falscheingabe wird einfach mit einem Wert weitergearbeitet, welcher mit der Eingabe eigentlich nichts zu tun hat. Die festen eingetragenen Jahreszahlen bedeuten dann auch, dass die Software nur diese Jahr funktioniert.
Im original Post steht:
System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
So muss man auch prüfen ob ja/nein/oder etwas anderes eingegeben wurde. Es steht da nämlich nicht: antworten sie mit ja oder irgendetwas anderem.
Nochwas, eine Variable "faktor" (Faktor: Zahl oder Größe, mit der eine andere multipliziert wird) zu nennen und dann eine Addition oder Subtraktion damit durchzuführen, ist naja ...
Wenn man dann noch schreibt: "Aber das ist vermutlich nur mein persönlicher, schlechter Programmierstil, also besser nicht als Vorbild nehmen." - dann frage ich mich nach dem Sinn der Antwort! Du schreibst bewusst eine schlechte Antwort um am Ende mitzuteilen, dass die Antwort schlecht ist! Was?
 

berndoa

Top Contributor
In Java werden Variablen klein geschrieben: "Eingabevariable" ist also kein valider Variablenname. Statt equals sollte man den Text mit equalsIgnoreCase vergleichen oder die Eingabe vorher explizit in Kleinbuchstaben umwandeln. Andernfalls müsste man jede Variante mit equals vergleichen.
Solche Vergleiche sind auch schlecht: int vergleichsjahr=(Eingabevariable.equals("ja"))?2022:2021; Bei einer Falscheingabe wird einfach mit einem Wert weitergearbeitet, welcher mit der Eingabe eigentlich nichts zu tun hat. Die festen eingetragenen Jahreszahlen bedeuten dann auch, dass die Software nur diese Jahr funktioniert.
Im original Post steht:
System.out.println("Hatten sie dieses Jahr schon Geburtstag? Antworten sie mit ja oder nein.");
So muss man auch prüfen ob ja/nein/oder etwas anderes eingegeben wurde. Es steht da nämlich nicht: antworten sie mit ja oder irgendetwas anderem.
Nochwas, eine Variable "faktor" (Faktor: Zahl oder Größe, mit der eine andere multipliziert wird) zu nennen und dann eine Addition oder Subtraktion damit durchzuführen, ist naja ...
Wenn man dann noch schreibt: "Aber das ist vermutlich nur mein persönlicher, schlechter Programmierstil, also besser nicht als Vorbild nehmen." - dann frage ich mich nach dem Sinn der Antwort! Du schreibst bewusst eine schlechte Antwort um am Ende mitzuteilen, dass die Antwort schlecht ist! Was?
Willst du Krieg oder machst du nur so?

Jeder gute Programmierer würde da vermutlich gleich die EIngabe prüfen und so lange eine neue Eingabe eingeben lassen bis du entweder ja oder nein ist.

Dementsprechend käme bei der Fallunterscheidung auch nur ja oder nein an.
Davon ab kann man da auch ein if- else if-else Konstrukt machen oder in den ternären operator eben noch einen zweiten einbauen.


In java wird viel gemacht, ich kann auch Alles UPPERCASE schreiben.
Und nun, bricht die Welt zusammen?

Man kann sich aber auch an Kleinscheiss stören wenn nebendran der Code des Threaderstellers so shcon voller Probleme ist.
Da kommst auf irgendwelche Kann-Konventionen ja wohl wirklich nicht (mehr) an
 
G

Gelöschtes Mitglied 65838

Gast
Man kann sich aber auch an Kleinscheiss stören wenn nebendran der Code des Threaderstellers so shcon voller Probleme ist.
es kommmt halt drauf an... wenn du zb einen java programmmierer vor dir hast der mit 20 jahren efahrung kein camelCase gebacken kriegt dann ist e ssinnvoll solche kleinigkeiten anzukratzen

von jemanden der ums überleben kämpft mit der eingabe konsole...puh ... ist wahrscheinlich too much

am besten wäre es vllt => erst problem lösen und dann hinklatschen
"aber konventionen und soooo" .. falls es den TE interessiert dann versuchts derjenige auhc umzusetzen.. wenn nicht dann ist es mir als antwort geber eig sack egal ob der code blöd ist... wenns dem TE nicht interessiert dann interessierts mich auch nicht


das muss man alles so einschätzen
 

KonradN

Super-Moderator
Mitarbeiter
es kommmt halt drauf an...
Ich will eigentlich mein Popcorn genießen und nicht mitmischen, aber das sehe ich anders.

Clean Code ist von Anfang an wichtig. Man muss es nicht erzwingen, aber ich würde immer darauf hinweisen. Auch ein Anfänger sollte sich da von Anfang an dran gewöhnen. Gewisse Dinge sind einfach existenziell. Und gerade Anfänger brauchen jede Hilfe beim Codeverständnis, die sie kriegen können.

Aber der Krieg soll weiter gehen - sonst wird mein Popcorn noch schlecht ... reicht, wenn das von mihe7 schlecht wird wegen mir :)
 

uuu3uuu

Aktives Mitglied
Bei diesem Codepart geht es schon los:
Java:
       String ja = alen.next();
       String nein = alen.next();

Auch ohne große Rückmeldung sehe ich da schon dass da 2 mal eine Eingabe gefordert wird und jeweils in der Variable ja und der Variable nein gespeichert wird.
Was sehr sinnfrei ist.

Der Nutzer wundert sich nur warum er 2 mal dasselbe eintippen soll bzw. warum überhaupt nochmal eine Eingabe.

Wenn du dir das Leben einfahc machen willst (und dem Nutzer weniger) würde ich hier sogar fast eine boolean Variable empfehlen, wobei da wieder Umformungen nötig wären
Aber gut, String geht auch.
aber nur eine Variable dann wo eben die Eingabe drin gespeichert ist und später mit
Java:
Eingabevariable.equals("ja") oder

Eingabevariable.equals("nein")
getestet wird welcher Fall vorliegt.
Genauso sind die nachfolgenden 2 Variabeln x und c sinnfrei, weil es einfacher geht.
Fachleute hier machen sowas natürlich als Einzeiler, ich hätte sowas wie

[CODE lang="java" title="int int vergleichsjahr=()"]int vergleichsjahr=(Eingabevariable.equals("ja"))?2022:2021;
int Alter=vergleichsjahr-jahr;
[/CODE]


Eine Variante die ich gerne mache ist einen bedingungsabhängigen "Faktor" zu nutzen, der in deinem Fall 1 oder 0 ist, sodass die gewünschten jahre 2022 und 2021 sich als 2021+faktor shcrieben lassen.
Also sowas wie:

Java:
int faktor=(Eingabevariable.equals("ja"))?1:0;
int Alter=vergleichsjahr-2021-faktor;

Aber das ist vermutlich nur mein persönlicher, schlechter Programmierstil, also besser nicht als Vorbild nehmen.
Natürlich statt dem ternären operator mit dem ? und : drin kann man das auch lang ausschreiben als if else Konstrukt

Also dieser Ratschlag war wirklich ein Griff ins Klo, und die Einwände von @Oneixee5 sind berechtigt...

Konventionen sind nicht einfach etwas, was man x-beliebig auslegen kann, weil sonst bräuchte man sie nicht... Sie sollen im Gegenteil sogar unzweideutig festlegen, wie sich alle verhalten und Code schreiben sollen, damit der geschriebene Code gewisse Maßstäbe und Anforderungen erfüllt. Sie regeln sozusagen das friedliche Miteinander Leben^^

@KonradN Popcorn ist ja schön und gut, aber Sarkasmus hilft nicht, wenn jemand gerade "full tilt" ist... Dann sollten wir besser "schlichten" und deeskalieren.
 
G

Gelöschtes Mitglied 65838

Gast
es kommt halt darauf an... welche Konventionen?

eclipse java konventionen zb 4 Leerzeichen einrucken
Google konventionen zb 2 Leerzeichen einrücken

die c# konventionen können auch benutzt werden in Java. zb pascalcase bei Methoden und klammern in nächster zeole.. kommt drauf wie man sich einigt
 

KonradN

Super-Moderator
Mitarbeiter
Ja, jeder darf Code so schreiben, wie er will. Aber darauf dürfen andere so reagieren wie diese wollen. Nichts anderes hatten wir hier.

Und @uuu3uuu: ich sehe das anders. Wer einfache Grundlagen und Fakten nicht einsehen will, da werde ich nicht mehr argumentieren oder gar schlichten. Was soll denn der Scheiß? Was glaubt Ihr, was ein Anfänger daraus ableitet?

Also ja: Super Aufführung des Kindergartens und ich genieße hier mein Popcorn ... und ich hoffe ja noch auf einen weiteren Auftritt von @Oneixee5.
 

berndoa

Top Contributor
Behalte ich eben meinen "Griff ins Klo" für mich. Und ihr mich kreuzweise, wenns genehm ist :)

Kein Wunder dass ich nicht oft in Foren interagiere mit solchen Leuten...

Ab jetzt chriebe ich meine Variabeln immer alle in GRO? und alle Konstanten in klein! :p
 
G

Gelöschtes Mitglied 65838

Gast
Behalte ich eben meinen "Griff ins Klo" für mich. Und ihr mich kreuzweise, wenns genehm ist :)

Kein Wunder dass ich nicht oft in Foren interagiere mit solchen Leuten...

Ab jetzt chriebe ich meine Variabeln immer alle in GRO? und alle Konstanten in klein! :p
das meme case ist bessr zb
kLeIn oder vAlUe
 

Oneixee5

Top Contributor
Ja, jeder darf Code so schreiben, wie er will. Aber darauf dürfen andere so reagieren wie diese wollen. Nichts anderes hatten wir hier.

Und @uuu3uuu: ich sehe das anders. Wer einfache Grundlagen und Fakten nicht einsehen will, da werde ich nicht mehr argumentieren oder gar schlichten. Was soll denn der Scheiß? Was glaubt Ihr, was ein Anfänger daraus ableitet?

Also ja: Super Aufführung des Kindergartens und ich genieße hier mein Popcorn ... und ich hoffe ja noch auf einen weiteren Auftritt von @Oneixee5.
Da muss ich dich leider enttäuschen. Ich habe meine Meinung geäußert und bis jetzt sehe ich noch keinen Grund diese zu ändern. Immer weiter Öl ins Feuer zu gießen ist nicht meine Art. Nur manchmal funktioniert mein Hirn einfach komisch. Gestern wurde ich gebeten ein Revue bei einer Kollegin zu machen. Sie hatte eine Konstante PREFIX genannt, den PREFIX aber immer hinten an Variablenwerte angehängt. Jedes mal wenn ich an so einer Stelle vorbei kam, dann hat mein Hirn rebootet. Das ist eigentlich eine Kleinigkeit aber trotzdem manchmal unüberwindbar.
 

Neumi5694

Top Contributor
es kommt halt darauf an... welche Konventionen?

eclipse java konventionen zb 4 Leerzeichen einrucken
Google konventionen zb 2 Leerzeichen einrücken

die c# konventionen können auch benutzt werden in Java. zb pascalcase bei Methoden und klammern in nächster zeole.. kommt drauf wie man sich einigt
In Netbeans kann man die Anzahl der Leerzeichen einstellen, würde mich wundern, wenn das in Eclipse nicht geht. Das ist keine Konvention, nur eine Voreinstellung.
Früher entsprach ein Tab 8 mal Leerzeichen, heute sind meistens 4. Das hat sich vor allem aus mehreren Gründen so entwickelt, vor allem durch den Weggang vom Spaghetticode mit GOTO Befehlen, der Verwendung von geschweiften Klammern auch für Einzeiler und switch/case und den allgemein längeren Variablen- und Methodennamen.
Ich verwende mittlerweile 2 Leerzeichen zum Einrücken. Das ist bei uns in der Firma die Konvention und ich hab mich ganz gut damit angefreundet.

"wie man sich einigt": Genau das ist eine Konvention. Will man, dass der Code für andere verständlich bleibt, sollte man sich an die grundlegenden Konventionen halten.
 

uuu3uuu

Aktives Mitglied
1646413103221.png

das ist auf jeden Fall Spaghetti-Case... also es folgt keinem offiziellem Style (außer "Kauderwelsch", aber Spaß beiseite)
 
G

Gelöschtes Mitglied 65838

Gast
es ist halt auch einstellung vom TE...

wurde oft genug angeschautzt im forum von irgendwelchen leuten die dagegen schießen wenn man ihnen sagt was man besser machen könnte

zb hab ich mal gesagt dass man das in eine methode auslagern kann

das kontra war dann "ja aber das löst das problem nicht" ... ja natürlich tuts das nicht, aber miserabler code ist miserabler code

und bei diesen übungen gehts nicht darum das "problem" zu lösen sondern programmieren zu lernen, wo sich manche anfänger nicht drauf konzentireren... für die gibts nur die lösung des problems als ziel
 

Neumi5694

Top Contributor
es ist halt auch einstellung vom TE...

wurde oft genug angeschautzt im forum von irgendwelchen leuten die dagegen schießen wenn man ihnen sagt was man besser machen könnte

zb hab ich mal gesagt dass man das in eine methode auslagern kann

das kontra war dann "ja aber das löst das problem nicht" ... ja natürlich tuts das nicht, aber miserabler code ist miserabler code

und bei diesen übungen gehts nicht darum das "problem" zu lösen sondern programmieren zu lernen, wo sich manche anfänger nicht drauf konzentireren... für die gibts nur die lösung des problems als ziel
Und zudem werden viele Probleme durch saubers Auslagern auch gleich mitgelöst. Je weniger Kuddelmuddel, desto weniger fehleranfällig ist das Programm.
 

berndoa

Top Contributor
ja hier eh schon über bullshit konventionen geredet wird:
Wenn man eine while schleife, if bedingung, for shcleife oder sowas schreibt, die {} Klammern, wo shcreibt man die seiner heiligkeit, der Konvention, denn dann hin?
hinter das while?
In die Zeile darunter?
oder dahinter, aber mit 3 leerzeichen Abstand?

Nicht dass ich das in zukunft auch verkehrt mache und das Universum zusammenbrricht, bisher liefen meine Programme zum Glück ohne Probleme, wer weiß wie lang das anhält so gefährlich wie ich da offenbar bisher unterwegs war :)
 

Neumi5694

Top Contributor
ja hier eh schon über bullshit konventionen geredet wird:
Wenn man eine while schleife, if bedingung, for shcleife oder sowas schreibt, die {} Klammern, wo shcreibt man die seiner heiligkeit, der Konvention, denn dann hin?
hinter das while?
In die Zeile darunter?
oder dahinter, aber mit 3 leerzeichen Abstand?
Das ist ebenfalls im oben genannten Link dokumentiert

Wenn man nur für sich selbst Spaghetti coden will, kann man auf alle Konventionen pfeifen. Wenn man allerdings möchte, dass andere den Code lesen können sollen, sollte man doch zumindest die Konventionen für Klassen und Variablen berücksichtigen.
 

berndoa

Top Contributor
Das ist ebenfalls im oben genannten Link dokumentiert

Wenn man nur für sich selbst Spaghetti coden will, kann man auf alle Konventionen pfeifen. Wenn man allerdings möchte, dass andere den Code lesen können sollen, sollte man doch zumindest die Konventionen für Klassen und Variablen berücksichtigen.
Ui, da habe ich es ja die ganze Zeit versehentlich nahc Convention gemacht.

Das werde ich mir aber schleunigst abgewöhnen müssen! :)
 

KonradN

Super-Moderator
Mitarbeiter
Super Unterhaltung hier ... Hat noch jeder Popcorn? Soll ich jemandem ein Bier mitbringen?

Ach, ich bin jetzt dran den Troll zu füttern? Na gut.

@berndoa Bei der Programmierung ist es wie im Forum: Man hält sich einfach an ein paar Regeln:
ja hier eh schon über bullshit konventionen geredet wird:
Ja, das ist irgendwie verständlich, aber nein, das ich kein richtiger Satz! Und auch, wenn das alles nur "Bullshit Konventionen" sind: Eigentlich hat man die in der ersten Klasse mal gelernt. Das sind so ganz einfache Dinge. Ein Satz fängt mit einem großen Buchstaben an. Substantive werden groß geschrieben, ... Ja, all sowas. Natürlich in Deinen Augen totaler Quatsch. So wie Deine Computer Programme irgendwie laufen, haben wir ja auch sehr gut über Dich lachen können. Also man könnte meinen, dass es unnötige Konventionen sind....

Du wirst es jetzt nicht verstehen. Jetzt bist Du auch in dem "Ich bin der trotzige kleine Junge der jetzt böse ist, weil es geschimpft bekommen hat" Modus. Das will ich dir auch nicht absprechen. Ist für Kollegen bestimmt auch lustig, wenn Du schreiend auf dem Boden liegst wie so ein Kleinkind. (Naja - PsychKG kommt mir da in den Sinn, aber das ist ein anderes Thema :) ) So ist auch Dein Auftritt hier extrem erheiternd.

Sollte Dich das Thema etwas mehr interessieren, dann kannst Du z.B. gerne einmal Robert C. Marting (Uncle Bob) schauen. Gibt es auch auf YouTube. Ich habe da mal einiges gesammelt: https://www.youtube.com/playlist?list=PLlX0P4QQfNkZ2bm0PuVKtHt70S63_PgOT

So, Fütterung vorbei. Viel Spaß bei Deiner nächsten Erwiderung. Aber vielleicht interessiert das Thema ja doch etwas und Du schaust da mal etwas rein. (Mir ist es egal. Ich will hier nur in Ruhe lachen und mein Popcorn essen. Und der Kaffee von @mihe7 ist immer extrem lecker!
 
G

Gelöschtes Mitglied 65838

Gast
Kommt hinten und vorne falscher Code und die Trottel regen sich ernsthafgt drüber auf dass eine Variable groß geschrieben wurde! -.-
naja beschissener Code ist auch ein schlecht geschriebener Code.. und code ist ab dem Punkt schlecht geschrieben ab dem man ihn nicht mehr lesen kann

zusätzlich gibts halt dann allgemeine Konventionen .. weil sich die Entwickler dabei was gedacht haben und glaub mir die entwickler der JVM mit java haben bestimmt mehr ahnung als du und ich

die GOF hatte sich bestimmt auch mehr mit Coden beschäftigt als du ... aber es ist ja modern zu widersprechen


wenn in C# die methoden groß geschrieben werden weil konventionen... ja dann tu ich das auch.. Microsoft + die anderen paar tausend die sich bei der entwikclung von c# beschäftigt haben werden sich schon was dabei gedacht haben und wenn jetzt wieder das "aber wir sind hier in java blabla" kommt .. herzlichen glückstrumpf
 

mihe7

Top Contributor
ja hier eh schon über bullshit konventionen geredet wird:
Wenn man eine while schleife, if bedingung, for shcleife oder sowas schreibt, die {} Klammern, wo shcreibt man die seiner heiligkeit, der Konvention, denn dann hin?
Der Sinn solcher Konventionen besteht darin, die Zusammenarbeit zu vereinfachen. Im Java-Umfeld haben sich die Konventionen von Sun in wesentlichen Zügen nun einmal als Standard etabliert. Wenn ein Bewerber sich nicht an grundlegende Konventionen hält, bekommt er von mir keine Stimme. Das ist keine Böswilligkeit, die Leute haben schlicht besseres zu tun als sich von irgendwelchen Vollpfosten in die Irre leiten zu lassen und die Firma will dafür auch kein Geld zum Fenster rausschmeißen.

Wenn ich beispielsweise ein UpperCamelCase.lowerCamelCase() sehe, will ich sicher sein, dass es sich um eine statische Methode handelt und wenn ich ein lowerCamelCase.lowerCamelCase() sehe, will ich davon ausgehen können, dass es sich um eine nicht-statische Methode handelt. Solche Vereinbarungen sind für mich nicht anders als dass ich lesbare Bezeichner erwarte, wo man nicht erstmal eine halbe Stunde braucht, um ihre Bedeutung herauszufinden.

Das hat auch was mit gegenseitigem Respekt zu tun. Einfach irendeinen unleserlichen Müll hinrotzen, ist eine Frechheit. Hier (und nicht nur hier) gibt es auch manchmal Anfragen dieser Form: alles klein, ohne Punkt und Komma, in jedem Wort fünf Rechtschreibfehler. Oder wenn Leute einfach aus einem PDF kopieren, völlig egal, ob man das noch lesen kann. Das sind dann meist Threads der Form: hier habt Ihr meinen Dreck, jetzt macht für mich mal die Aufgabe.

Was die Sun-Konventionen betrifft: die haben schon einige Jahre auf dem Buckel und die Zeiten ändern sich. Als Java rauskam, gab es zum Beispiel keine IDEs. Da hatten Leerzeichen einen anderen Stellenwert; heute drücke ich aufs Knöpfchen und der Code wird einheitlich formatiert. Trotzdem ist es schöner, wenn man sich diesen Schritt sparen kann.

Und was natürlich gar nicht geht: in einer Datei unterschiedliche Einrückungen. Schon deswegen macht es Sinn, sich auf irgendwas zu verständigen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 12
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 6
W Erste Schritte Warum funktioniert mein Programm nicht ? ~if Anweisung~ Java Basics - Anfänger-Themen 4
A Mein 1x1 Programm funktioniert nicht? Java Basics - Anfänger-Themen 2
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
G Warum funktioniert mein Updater nicht? Java Basics - Anfänger-Themen 2
G Mein erster Thread funktioniert nicht. Java Basics - Anfänger-Themen 3
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
A TicTacToe funktioniert bis auf "schiefer" Sieg Java Basics - Anfänger-Themen 6
M Erste Schritte Importieren funktioniert nicht Java Basics - Anfänger-Themen 7
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
F FileCreation - PrintWriter funktioniert nicht... Java Basics - Anfänger-Themen 1
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
T Methode in Klasse funktioniert nicht Java Basics - Anfänger-Themen 14
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Level Reset funktioniert nicht Java Basics - Anfänger-Themen 3
A Java Scanner Funktioniert nicht Java Basics - Anfänger-Themen 2
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben