Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Ich bin seit einem Tag ganz neu im BlueJ bzw. Java Geschäft.

Im moment versuche ich ein Konto zu programmieren welches erstmal nur abheben bzw. einzahlen und informationen ausgeben soll. Dabei möchte ich Sicherheitsabfragen wie pin oder augen- und haarfarbe einbringen. Allerdings kommt in letzter Zeit immer wieder folgende Probleme auf Problem auf:


public class Konto

{


private int pin;

private String inhaber

private Double kontostand


public Konto(int Passpin, String pInhaber){


kontostand = 0.00

pin = Passpin;

pInhaber = inhaber;

}


 public void kriegeGeld(int Passpin){


    if (pin == Passpin){

        public GeldDazu(Double betrag){         <--- illegal start of expression

        kontostand += betrag;

    }}}


}

Dies ist eine gekürzte Fassung meines Programms. Ich habe hierbei einmal das Problem das an der Seite steht und das Problem das hinterher wenn ich das Programm ausführe (Das Problem trat auf bevor ich den Passpin einbaute, den hab ich nachträglich gemacht obwohl nicht alles funktionierte :-)) und ein neues Konto erstelle und einen beliebigen Namen z.B. Peter für den String "pInhaber" eingebe wirft das program das problem: Error: cannot find symbol - variable peter

Ich erbitte um Hilfe

Vielen Dank

Bearbeitet von flashpixx
Code-Tags

Bitte verwende Code-Tags ! Ich habe sie nachträglich eingefügt.

Das "public" ist ein Schlüsselwort, das nicht innerhalb des Methodenrumpfes verwendet werden darf. Der Bezug zu Deiner Variablen Peter geht aus dem Quellcode nicht hervor. Ein String bzw. dessen Inhalt ist nicht als Variablennamen anzusprechen. Poste den ganzen Code bzw die dazu relevanten Auszüge, damit man weiter helfen kann

Stimme flashpixx zu, des weiteren ist mir die Zeile

pInhaber = inhaber;

aufgefallen. Ich glaube hier wolltest du folgendes erreichen

inhaber = pInhaber;

Grüße

Mein Problem is ja grade das ich keine Variable Peter habe sondern dies der Inhalt für meinen inhaber String ist ich habe es mal anders ausprobiert, und zwar funktioniert es einen Name in anführungszeichen in das feld zu setzen z.B. "Peter" hinterher fiel mir auch auf dass das bei jedem Stringfeld so ist. Kann man das irgendwie machen, dass man keine anführungszeichen setzen muss damit der string das versteht und nicht als variable sieht?

Und noch ein paar fragen habe ich:

wie kann ich einen Codepart wiederholen lassen bis etwas geschieht könntet ihr mir dazu und zum springen zu bestimmten punkten im code mal nen code reinstellen??

noch eine dritte frage:

wenn ich eine abfrage mit mehreren Kriterien mache mit if wie kann ich dann je nach dem welche der if's nicht zutrifft unterschiedliche else's einfügen.

und überhaupt warum kommt bei diesem code kein outprint wenn ein if nicht zutrifft:


public void kriegeGeld(int Kontonummer, int Passpin, Double betrag){


    if (pin == Passpin)

    if (nummer == Kontonummer){      

        kontostand += betrag;


    }

else {

        System.out.println("Sie haben nicht die Rechte auf dieses Konto zuzugreifen!");

}}

Natürlich sind die nötigen variablen richtig gesetzt und jegliche eingaben dazu werden zuvor getätigt.

Kann man das irgendwie machen, dass man keine anführungszeichen setzen muss damit der string das versteht und nicht als variable sieht?

Nein, ein String wird immer in entsprechende Anführungszeichen gesetzt, damit er passend vom Parser und Compiler verarbeitet werden kann.

wie kann ich einen Codepart wiederholen lassen bis etwas geschieht könntet ihr mir dazu und zum springen zu bestimmten punkten im code mal nen code reinstellen??

Nennt sich "Schleifen".

Ich empfehle Dir ganz dringend für diese wirklichen Basisstrukturen entsprechende Literatur durchzulesen. Das was Du hier möchtest findest Du wirklich in jedem Lehrbuch über Programmierung. Für Java z.b. Galileo Computing :: Java ist auch eine Insel (8. Auflage)

wenn ich eine abfrage mit mehreren Kriterien mache mit if wie kann ich dann je nach dem welche der if's nicht zutrifft unterschiedliche else's einfügen.

Indem Du die If-then-else Bedingungen passend schachtelst oder je nach Möglichkeit eine switch-case Struktur verwendest.

und überhaupt warum kommt bei diesem code kein outprint wenn ein if nicht zutrifft:

Das ist auch korrekt, ein else wird immer an das nächst-liegende if gebunden, d.h. in Deinem Fall an das innerste (nummer == Kontonummer). Du musst dem Compiler schon mitteilen, wo Du was machen möchtest, dafür kann z.B. Klammern passend setzen, die Anweisungsblöcke gegen andere abgrenzen.

Aber bitte auch hierzu einschlägige Literatur lesen. Wir können hier sicherlich keinen kompletten Kurs "Grundlagen in Javaprogrammierung" abhalten

noch eine dritte frage:

wenn ich eine abfrage mit mehreren Kriterien mache mit if wie kann ich dann je nach dem welche der if's nicht zutrifft unterschiedliche else's einfügen.

und überhaupt warum kommt bei diesem code kein outprint wenn ein if nicht zutrifft:


public void kriegeGeld(int Kontonummer, int Passpin, Double betrag){


    if (pin == Passpin)

    if (nummer == Kontonummer){      

        kontostand += betrag;


    }

else {

        System.out.println("Sie haben nicht die Rechte auf dieses Konto zuzugreifen!");

       }

}
Natürlich sind die nötigen variablen richtig gesetzt und jegliche eingaben dazu werden zuvor getätigt.
Das ließe sich wie folgt umgehen:
public void kriegeGeld(int Kontonummer, int Passpin, Double betrag){


    if (pin == Passpin && nummer == Kontonummer){      

        kontostand += betrag;


    }

else {

        System.out.println("Sie haben nicht die Rechte auf dieses Konto zuzugreifen!");

       }

}

Das "&&" steht für ein logischen UND d.h. der If-Block wird nur ausgeführt, wenn BEIDE bedingungen zutreffen.

Grüße

@redictable: Deine Lösung ist aber dann insoweit nicht korrekt, da die Fehlermeldung nur aussagt, dass der Pin falsch ist. Wenn der Pin korrekt, aber die Kontonummern nicht korrekt sind, würde die Meldung kommen, dass man keinen Zugriff auf das Konto hat.

Deshalb wären zwei Ifs mit entsprechenden Else-Zeigen sinnvoller, wobei man auch keine Nachricht schreiben, sondern eine Exception werfen würde, die man in diesem Fall sogar selbst definieren kann, so dass man gezielt in der Anwendungsschicht passend reagiert.

Ich habs jetzt verstanden, mir wurde es erklärt ich mach das jetzt mit else if und dann kann ich auch einzelbedingungen stellen

Danke nochmal

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.