Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee?
Hallo ich möchte in meiner Datei am anfang einen Code schreiben der den User nach einem Code fragt diesen umrechnet und dann zurückgibt damit der rest anfangen kann.
Java:
public static void code()
{
// 7342
int trs = 0;
int ec = codeeingabe(ec);
while(true)
{
if(ec==7342)
{
abfrage();
}
else if(ec!=7342&&trs>6)
{
codeeingabe(ec);
trs++;
}
else
{
System.out.println("Tschüss, bis dann!");
break;
}
}
}
public static int codeeingabe(int ec)
{
Scanner zeta = new Scanner(system.in);
System.out.println("Geben sie bitte den code ein."+"\n"+"In diesem Stil: XXX-XXX-XXX-XXX");
int cein,czwei,cdrei,cvier;
String codev=zeta.next();
String[] code = codev.split("-");
cein = Integer.parseInt(code[0]);
czwei = Integer.parseInt(code[1]);
cdrei = Integer.parseInt(code[2]);
cvier = Integer.parseInt(code[3]);
int qein=0,qzwei=0,qdrei=0,qvier=0;
while ( cein> 0)
{
int lz = cein % 10;
qein += lz;
cein /= 10;
}
while ( czwei> 0)
{
int lz = czwei % 10;
qzwei += lz;
czwei /= 10;
}
while ( cdrei> 0)
{
int lz = cdrei % 10;
qdrei += lz;
cdrei /= 10;
}
while ( cvier> 0)
{
int lz = cvier % 10;
qvier += lz;
cvier /= 10;
}
ec=cein*1000+czwei*100+cdrei*10+cvier;
return ec;
}
Wie man Fragen richtig stellt; eine Anleitung wie man Fragen erfolgreich in Usenet, Mailinglisten und Webforen stellt. Dies ist eine Übersetzung von Eric Raymonds Essay How To Ask Questions The Smart Way
tty1.net
Was soll der Code machen (Welche Eingabe erzeugt welche Ausgabe?)
Welche EIngaben tätgigst du? Was erwartest du als Ausgabe? Was kommt als Ausgabe?
Also das: int ec = codeeingabe(ec); dürfte nicht funktionieren. ec ist eine lokale Variable und lokale Variablen haben bei Deklaration keinen definierten Wert. Daher müssen diese erst initialisiert werden, ehe lesend auf diese zugegriffen werden kann.
Der Parameter ec bei codeeingabe macht auch gar keinen Sinn, denn mit dem Parameter wird nichts gemacht (außer am Ende ein Wert zuzuweisen und den dann zurück zu geben). Die Methode sollte also gar keinen Parameter haben.
Also diese Methode soll das probgramm sofern der Code richtig ist starten indem sie den user fragt was er weiter machen möchte denn da sollen am ende so um die 10 verschiedenen methoden sein wo jede etwas unterschiedliches bestimmt, und eben der User muss erstmal den richtigen code eingeben damit er dahin kann.
Und vielen dank mit dem Hinweis auf das falsch geschriebene.
Also das: int ec = codeeingabe(ec); dürfte nicht funktionieren. ec ist eine lokale Variable und lokale Variablen haben bei Deklaration keinen definierten Wert. Daher müssen diese erst initialisiert werden, ehe lesend auf diese zugegriffen werden kann.
Der Parameter ec bei codeeingabe macht auch gar keinen Sinn, denn mit dem Parameter wird nichts gemacht (außer am Ende ein Wert zuzuweisen und den dann zurück zu geben). Die Methode sollte also gar keinen Parameter haben.
Hey dankeschön für den Hinweis, ich habe jetzt ec als 0 deklariert und in der nächsten Zeile es so bestimmt sage ich mal
"ec= codeeingabe();"
und habe auch die Parameter bei der Methode codeeingabe entfernt jetzt wird mir allerdings die main Methode als fehler angezeigt.
Fehlermeldung:
"
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
at Aufgabe13.main(Aufgabe13.java:5)
"
Java:
public static void main(String[] args)
{
Scanner zeta = new Scanner(System.in);
code();
//gzia(zeta);
}
Da müsste man genau die Fehlermeldung und die angepasste Version des Codes sehen. Evtl. ist die Methode code nicht mehr übersetzbar und daher wird das da angemeckert? Daher wäre es super, wenn Du die neue Version des ganzen Codes zeigst.
Was sein könnte: Wenn Du den Parameter ec entfernt hast, dann musst Du am Ende auch noch etwas anpassen:
Die Vorletzte Zeile der Methode hat eine Zuweisung zu ec und da es den Parameter nicht mehr gibt, müsstest Du das ec als lokale Variable deklarieren. Also einfach ein "int" davor int ec=cein*1000+czwei*100+cdrei*10+cvier;
Ja stimmt die fragestellung und die erklärung was getan werden soll waren mangelhaft, vielen dank für diese Bemerkung. Nur Fragestellungen zu formulieren war noch nie so meins warum ich allerdings keine besser bedachte erklärung was der Code machen soll usw hier geschreiben habe weiß ich gerade selbst nicht.
Aufjeden fall hier einmal ausführlich.
Dieser Code abschnit bestehend aus 2 Methoden names code & codeeingabe soll in der Codeeingabe den User nach einen Code im format XXX-XXX-XXX-XXX abfragen diesen dann umrechnen und das ergebnis zu der methode code zurückgeben diese überprüft den ec (entgültiger code) und falls dieser übereinstimmt mit 7342 soll die methode abfrage ausgefürt werden wo der user abgefragt wird was er machen möchte da es so ca. 10 methoden am ende geben soll wo jede etwas bestimmt und der user soll hin und her gehen. falls der code allerdings nicht über einstimmt soll wieder die methode codeeingabe ausgefürt werden solange der user die fehleranzahnl von 5 nicht überstreitet
Da müsste man genau die Fehlermeldung und die angepasste Version des Codes sehen. Evtl. ist die Methode code nicht mehr übersetzbar und daher wird das da angemeckert? Daher wäre es super, wenn Du die neue Version des ganzen Codes zeigst.
Was sein könnte: Wenn Du den Parameter ec entfernt hast, dann musst Du am Ende auch noch etwas anpassen:
Die Vorletzte Zeile der Methode hat eine Zuweisung zu ec und da es den Parameter nicht mehr gibt, müsstest Du das ec als lokale Variable deklarieren. Also einfach ein "int" davor int ec=cein*1000+czwei*100+cdrei*10+cvier;
Die main Methode ist soweit korrekt (von der Syntax - die Funktionalität habe ich nicht geprüft). Was ich noch als Fehler sehe: public static int codeeingabe(int )
Dort ist das int in den Klammern zu viel. Es müsste so sein: public static int codeeingabe()
Damit wäre es schon übersetzbar. Ich habe es in eine Klasse eingefügt, den Import von Scanner hinzugefügt und dann den Aufruf abfrage(); auskommentiert, da die Methode natürlich bei mir fehlt.