HILFE! Ich habe keinen Plan mehr!

Status
Nicht offen für weitere Antworten.

toxictype

Mitglied
Hallo,

da bin ich wieder!

Wie ihr viellicht mitbekommen habt, bin ich gerade dabei JAVA zu lernen.
Nun haben wir eine erste Aufgabe bekommen und ich weiß nicht weiter!
Ich bekomme beim compilen ständig andere Fehlermeldungen.
Könnt ihr mir bei folgendem Code ein wenig unter die Arme greifen und vielleicht erklären warum was falsch ist!?

Das wäre superklasse von euch!

Code:
// alle Klassen des Packages java.io (I/O-Funktionen) werden importiert
import java.io.*;

/**
 * Dateiname	: Konto.java
 * Beschreibung : Ein Programm zur Simulation von Auszahlungen eines Kontos.
 */

// Die Klasse Konto wird deklariert
public class Konto
{

  /**
   * Die Klasse soll von der Eingabekonsole aus aufgerufen werden -> main-Methode wird deklariert.
   * Außerdem sollte für den Fall ein Zugriff von anderen Klassen gewährleistet sein -> public.
   */
  public static void main(String[] args)
  {

	/**
	 *  Deklaration und Initialisierung der Variable(n):
	 *	Die Variable kontostand ist vom Typ Integer, da keine Centbeträge abgehoben werden können.
	 *  Sie hat den Anfangswert 5000.
	 */
	int kontostand = 5000;
	int eingabe = 0;
	int weiter = 0;

	/**
	 *  Schleife
	 */
	do
	{

		/**
	 	 *  Der Benutzer soll nun einen Betrag eingeben.
		 *  Ein Objekt der Klasse BufferedReader wird erzeugt.
		 *  Die Eingabe wird vom Typ String in einen Integer gewandelt (geparst).
		 */
		BufferedReader In = new BufferedReader(new InputStreamReader(System.in));
		System.out.println ("Bitte geben Sie den gewünschten Betrag ein!");
		String eingabeZahl = In.readLine();
		eingabe = Integer.parseInt(eingabeZahl);

			/**
	 		 *
	 		 *
	 		 */
	 		if (eingabe > kontostand)
	 		{
				System.out.println ("Der gewünschte Betrag ist leider zu hoch!");
			}
			else
			{
				if (eingabe == kontostand)
				{
					System.out.println ("Information: Der eingegebene Betrag entspricht Ihrem Kontostand!");
				}
				else
				{
					System.out.println ("Der gewünschte Betrag wird Ihnen ausgezahlt!");
				}
			}

			System.out.println ("Möchten Sie sich einen weiteren Betrag auszahlen lassen? Nein = 0, Ja = 1");
			String wdh = In.readLine();
			weiter = Integer.parseInt(wdh);

		}
		while (weiter == 1);
	}
	
}
 

Wildcard

Top Contributor
Code:
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
      System.out.println ("Bitte geben Sie den gewünschten Betrag ein!"); 
      try
      {
           String eingabeZahl = in.readLine(); 
           eingabe = Integer.parseInt(eingabeZahl); 
       }catch( IOException ex)
       {
            ex.printStackTrace();
        }catch(NumberFormatException ex)
        {
            ex.printStackTrace();
        }

Wenn du etwas über einen Stream einliest kann eine IO-Exception geworfen werden. Diese musst du fangen.
Bei Integer.parseInt sollte man auch immer NumberFormatExceptions fangen, wenn der User keine gültige Zahl eingegeben hat.
 

toxictype

Mitglied
Hallo und danke für die Hilfe!

Wenn ich also die Klasse BufferedReader benutze, muß ich try und catch zum 'auffangen' benutzen?
Was heißt auffangen?

Tox
 

Wildcard

Top Contributor
Na wenn eine Exception geworfen wird muss sie ja irgendwo behandelt werden. Dass machst du im catch-Teil.
Wenn bei parseInt z.B eine NumberFormatException fliegt kannst du im catch-Teil dafür sorgen das der User eine
Rückmeldung erhält und die Eingabe wiederholt wird.
 
G

Guest

Gast
Aha, heißt das also, dass bei Verwendung der Klasse BufferedReader Exceptions ausgegeben werden, die nur mit der catch Anweisung aufzufangen sind? Ich mache mich mal weiter an die Berechnung des Kontostandes. Muß ich dafür eigentlich mit return arbeiten, also das void der main-Methode entfernen?
 

Wildcard

Top Contributor
Du kannst das void an der main MEthode nicht entfernen weil die Signatur dieser Methode vorgegeben ist.
Du solltest dir allerdings Hilfsmethoden erstellen (Beispielsweise eine zum einlesen von Zahlen).
 

Wildcard

Top Contributor
Ja!
Mit Hilfsmethoden meine ich das du statt
Code:
      String eingabeZahl = In.readLine(); 
      eingabe = Integer.parseInt(eingabeZahl);
sowas machst:
Code:
int eingabe = liesMirBitteEineIntZahlVonTastatur();
 

L-ectron-X

Gesperrter Benutzer
Genau! Man versucht so ein Programm übersichtlicher zu machen. Es lässt sich so besser lesen und oft wiederkehrende "Prozeduren" können mit einem Methodenaufruf erledigt werden. Man teilt also ein Programm in Teilaufgaben auf, die in Methoden verwirklicht werden.
 

toxictype

Mitglied
Hast Du da vielleicht ein ausführliches Beispiel?
Das wäre klasse!

Warum hast Du bei der catch-Sache ein ex?
Ich kenne nur e und nfe und weiß auch nihct so recht, was sie bedeuten!

Wenn wir mal fragen, wird immer gesagt, dass es jetzt noch uninteressant wäre und es erstmal so hinnehmen sollen!!! :-(
 

toxictype

Mitglied
Mann, ich glaube, ich habe es soweit geschafft auch wenn mir einiges nicht ganz plausibel ist!
Aber aller Anfang ist schwer!

Vielleicht kannst Du bzw. ihr einen Blick darauf werfen und eine Meinung abgeben (auch wenn sie hart ist! :) )

Ich muß noch Kommentare einbringen! Das kommt aber später!

Code:
import java.io.*;

public class Konto2
{
	public static void main(String[] args)
  	{
		int kontostand = 5000;
		int eingabe;
		int weiter = 0;
		int auszahlung;

		do
		{
			try
			{
				try
				{
					BufferedReader In = new BufferedReader(new InputStreamReader(System.in));
					System.out.println ("Bitte geben Sie den gewuenschten auszuzahlenden Betrag ein (in EUR)!");
					String eingabeBetrag = In.readLine();
					eingabe = Integer.parseInt(eingabeBetrag);
				
					if (kontostand > eingabe)
					{
						System.out.println ("Der gewuenschte Betrag wird Ihnen sofort ausgezahlt!");
						kontostand = kontostand - eingabe;
					}
					else
					{
						System.out.println ("Der hoechstmoeglich auszuzahlende Betrag lautet: " + kontostand + " EUR.\n");
						System.out.println ("Moechten Sie sich diesen Betrag auszahlen lassen? Nein = 0, Ja = 1");
						String eingabeAuszahlung = In.readLine();
						auszahlung = Integer.parseInt(eingabeAuszahlung);
						if (auszahlung == 1)
						{
							kontostand = kontostand - kontostand;
							System.out.println ("Ihr aktueller Kontostand lautet: " + kontostand + " EUR.\n");
							System.out.println ("Sie haben keine Möglichkeit mehr Geld abzuheben!\nAuf Wiedersehen!");
							break;
						}
					}
				
				System.out.println ("Ihr aktueller Kontostand lautet: " + kontostand + " EUR.\n");
				System.out.println ("Moechten Sie eine weitere Transaktion vornehmen? Nein = 0, Ja = 1");
				String eingabeWeiter = In.readLine();
				weiter = Integer.parseInt(eingabeWeiter);
				}
				catch (NumberFormatException nfe)
				{
					System.out.println ("\nSie haben eine falsche Eingabe gemacht!\nBitte geben Sie nur die Zahl 1 oder 0 ein!\nVielen Dank!\n");
					weiter = 1;
				}
			}
			catch (Exception e)
			{
				System.out.println ("\nSie haben eine falsche Eingabe gemacht!\nBitte geben Sie nur Zahlen ein!\nVielen Dank!\n");
				weiter = 1;
			}
		}

		while (weiter == 1);
	}
}
 

L-ectron-X

Gesperrter Benutzer
e oder nfe sind nur Namen für Variablen. Du könntest es eben so
Code:
catch(NumberFormatException exception)
nennen.
 

L-ectron-X

Gesperrter Benutzer
Eine Referenz auf ein NumberFormatException-Objekt. Die Referenz ist quasi eine Variable, ein "Zeiger" auf ein Objekt im Heap (Speicherbereich in der VM).
 

Wildcard

Top Contributor
Und wenn du wie vorgeschlagen sowas benutzt wird dein Programm wesentlich schlanker und übersichtlicher:
Code:
public static int readInt()
{
	BufferedReader reader =  new BufferedReader(new InputStreamReader(System.in));
	try
	{
		return Integer.parseInt(reader.readLine());
	} catch (NumberFormatException e)
	{
		System.out.println("Falsche Eingabe, bitte wiederholen");
      return readInt();
	} catch (IOException e)
	{
		e.printStackTrace();
		return 0;
	}

}
 

toxictype

Mitglied
Hast Du das jetzt mit 17 Zeilen geregelt wofür ich 65 brauchte??? :shock:

Ich denke mal, dass mein Code dann nicht so gut ist! :bahnhof:
 

Wildcard

Top Contributor
Ich hab nur den Teil der zum einlesen und parsen eines ints zuständig ist ausgelagert.
Bau die Methode einfach in deinen bestehenden Code ein...
Sobald du etwas mehr Erfahrung hast fängst du automatisch an Dinge stärker zu kapseln und zu trennen.
In der main-Methode stehen dann meistens nicht mehr als 1-2 Aufrufe mit denen ein Objekt instanziert wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
P Habe da ein Problem mit Arrays! Bitte um Hilfe Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
N Laufzeitberechnung - dringende Hilfe! Java Basics - Anfänger-Themen 1
G Java Hilfe Java Basics - Anfänger-Themen 3
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
A Schleifen, Hilfe! Java Basics - Anfänger-Themen 6
LeonDerStudent Hilfe bei Uniprojekt Java Basics - Anfänger-Themen 2
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
R Hilfe bei removeduplicates Java Basics - Anfänger-Themen 5
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
Q Hilfe bei Hausaufgeben Java Basics - Anfänger-Themen 2
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
S Hilfe Java Basics - Anfänger-Themen 1
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben