Methoden Langer Text, kurze Frage

agent0013

Mitglied
Hallo,

ich habe eine frage,was ich allein nicht beantworten konnte.
Ich mache gerade eine aufgabe:

Schreiben Sie ein Programm, das den Anwender auffordert 5 Integer einzugeben. Das Programm wird den Anwender fünfmal auffordern eine Zahl einzugeben. Danach wird es die Summe berechnen und ausgeben.

Die Ausgabe des Programms sieht dann ungefähr folgendermaßen aus.

Geben Sie 1. Zahl ein:
11
Geben Sie 2. Zahl ein:
4
Geben Sie 3. Zahl ein:
5
Geben Sie 4. Zahl ein:
1
Geben Sie 5. Zahl ein:
9
Gesamtsumme: 30


Verändern Sie dann das Programm, so dass es am Anfang den Anwender fragt, ob er eine Eingabeaufforderung wünscht. Der Anwender gibt "ja" oder "nein" ein (nur einmal, am Anfang). Die Schleife wird jetzt entweder eine Eingabeauforderung ausgeben oder nicht.

Deklarieren Sie eine weitere Stringvariable antwort und weisen Sie ihr das Stringliteral "ja" zu. Vergleichen Sie dann mit der equals() Methode ob der vom Anwender eingegebene String äquivalent zur Stringvariablen antwort ist. Setzen Sie eine boolesche Variable auf true oder false, je nach dem was der Anwender eingegeben hat. Innerhalb der Schleife bestimmt dann eine if-Anweisung ob die Eingabeaufforderung ausgegeben wird oder nicht.

Die Ausgabe des Programms sieht dann ungefähr folgendermaßen aus.

Eingabeaufforderung <ja> oder <nein>?
nein
3
5
2
12
8
Gesamtsumme: 30


Ich hab so was geschrieben:

Java:
import java.io.*;


class IntegerAddieren
{
	public static void main ( String[] args ) throws IOException
	{

		String zeile;
		BufferedReader stdin = new BufferedReader(
					new InputStreamReader( System.in ) );
		
		int zahl = 1;
		int summe = 0;
		String antwort = "ja";
		
		System.out.println("Eingabeaufforderung (ja oder nein)?");
		antwort = stdin.readLine();
		if (antwort.equals("ja"))
		{
			int zaehler = 1;
			while ( zaehler <= 5)
			{
				System.out.println("Geben Sie eine Zahl ein: ");
				zeile = stdin.readLine();
				zahl = Integer.parseInt(zeile.trim());
				summe = summe + zahl;
				zaehler = zaehler + 1;
				
			}
			System.out.println("\nDie Summe ist: " + summe);
		}
		else
		{
			System.out.println("BYE");
		}
	}
}


und was ich nicht verstehe,warum brauche ich hier boolesche variable?und wenn es unbedingt sein muss,wie kann ich es machen?
 
Zuletzt bearbeitet:
Wenn du nein eingibst, so macht dein Programm nicht das, was gefordert ist.
In der boolean wird eben das Ergebnis des Vergleiches gespeichert, so wie man Zahlen mit int speichert, so speichert man ja/nein mit boolean.
 
Mit boolean geht es eben am besten:
Java:
String yes = "ja";
boolean showExtraText = yes.equals(input);

.
.
.


do {
	if (showExtraText) {
		// show some Text
	}
} while(someCondition);
 
dann wäre es so,richtig?

Java:
String antwort = "ja";
boolean korrekt = antwort.equals("ja");

if (korrekt)
{
	System.out.println("Geben Sie die Zahlen ein: ");
		int zaehler = 1;
		while ( zaehler <= 5)
		{
			zeile = stdin.readLine();
			zahl = Integer.parseInt(zeile.trim());
			summe = summe + zahl;
			zaehler = zaehler + 1;
			
		}
		System.out.println("\nDie Summe ist: " + summe);
	}
	else
	{
		System.out.println("BYE");
	}
 
Nein so ist es nicht richtig!

Vergleich:

Gefordertes Programm:

Eingabeaufforderung <ja> oder <nein>?
nein
3
5
2
12
8
Gesamtsumme: 30

Dein Programm:

Eingabeaufforderung <ja> oder <nein>?
nein
BYE
 
Meine Güte .... was daran so schwer die Aufgabe zu lesen?

Hier die 2 varianten wie gefordert:
--------------------------------------------------
Eingabeaufforderung <ja> oder <nein>?
ja
Geben Sie 1. Zahl ein:
11
Geben Sie 2. Zahl ein:
4
Geben Sie 3. Zahl ein:
5
Geben Sie 4. Zahl ein:
1
Geben Sie 5. Zahl ein:
9
Gesamtsumme: 30
-------------------------------------------
Eingabeaufforderung <ja> oder <nein>?
nein
3
5
2
12
8
Gesamtsumme: 30
 

Neue Themen


Zurück
Oben