Kontrollstrukturen Ergebnis gesucht

Pyrius

Mitglied
Hallo Profis,

studiere Wirtschaftsinformatik im ersten Semester. Und bald stehen Prüfungen an. Auch in Progammierung.
In einer alten Klausur habe ich untenstehende Aufgabe gefunden. Leider komme ich nicht auf das angegebene Ergebnis. Bin kurz vor dem verzweifeln. Vielleicht ist auch die Lösung falsch? Und ich liege richtig?!

Gegeben ist:

Java:
private static int code = -1;
private int count = 0;
private int[] zahlen = {10,100,1000};
public int gebeAus(int zahl)
{
if (Zahl > 0)
{
for (int i=0;i<zahlen.length;i++)
{
if (zahl > zahlen[i])
continue;
count = i + 1;
break;
}
}
return count;
}

a) Was geben die folgenden Funktionsaufrufe zurück?

GebeAus(41); Angebliche Lösung: 1 Meine Lösung: 2
GebeAus(-5); Angebliche Lösung: 0 Meine Lösung: 0
GebeAus(1003); Angebliche Lösung: 1 Meine Lösung: 3

Welche Lösung ist richtig? Vielleicht lässt sich aus
meinen Ergebnissen rauslesen was ich falsch mache!?
???:L

Vielen Dank im Voraus!
Gruß

Florian
 
Zuletzt bearbeitet von einem Moderator:

selim

Aktives Mitglied
Ich komme auf diese Ergebnisse:

GebeAus(41); Lösung: 2 <-- 41 ist größer als 10 [0] aber kleiner als 100[1] count= i[1] + 1 somit = 2
GebeAus(-5); Lösung: 0 <--- ist kleiner als die vorgaben (zahlen)
GebeAus(1003); Lösung: 0 <--- ist größer als die vorgaben (zahlen)
 

njans

Top Contributor
Ist dein Code direkt so gegeben ? oder meinst du es ist die Signatur vorgegeben ? Weil ich finde den äußerst komisch.

Java:
private static int code = -1;
private int count = 0;
private int[] zahlen = {10,100,1000};

	public int gebeAus(int zahl)
	{
//Bist du dir da wirklich sicher, mit der Instanzvariable Count?  Für mich scheint hier eine lokale Variable besser.
		int localCount = 0;
		
		if (Zahl > 0)
		{
			for (int i = 0; i < zahlen.length; i++)
			{
				// So brauchst du nicht extra continoue zu verwenden
				if (zahl <= zahlen[i])
				{
					localCount = i + 1;
					//break; 
				}
			}
		}
		return localCount;
	}
Generell kannst du durch das break nur maximal 1 rausbekommen, da jedoch die Variable bei dir eine Instanzvariable ist, wird nach jedem Aufruf der Wert der zuletzt ausgegeben wurde behalten.
 
Zuletzt bearbeitet:

lukas93

Mitglied
Hallo Florian,

bin zwar kein Profi aber ich kann ja mal probieren es dir zu erklären...
Angenommen du übergibst als Parameter die 41:
41 > 0! Deswegen wird die for-schleife erreicht..
41 > zahlen ..da i = 0 ist wird hier mit der zahl des Arrays mit Index 0 verglichen und das ist die 10
41 > 10!
count = i + 1 ..also count = 0 + 1
41 ist kleiner als 100, deswegen wird count nicht mehr geändert! also bleibt als return-value die 1 stehen

der 2. Fall ist denke ich mal klar...
und im 3. komme ich auf die gleiche Lösung wie du

Lg
Lukas
 

HimBromBeere

Top Contributor
count ist zu Anfang 0.

Mit dieser Erkenntnis wird die Schleife für die Zahl 41 genau ZWEIMAL ausgeführt. Der Zähler i ist zu diesem Zeitpunkt 1, weshalb
Code:
count = i + 1
2 ergibt

Bei Zahl = -5 wird wie du richtig erkannt hast gar nicht die Schleife ausgeführt

Bei zahl 1003 wird die Schleife dreimal ausgeführt. Bei jedem Mal wird continue ausgeführt. Nach dieser Logik sollte count nie erhöhrt werden...???:L

EDIT: ZUSAMMENFASSUNG:
41-->2
-5 --> 0
1003 -->0


EDIT: OK, wenn ich schin nur falsche Antworten liefere, kann ich doich wenigstens mal den Code anstänsig formatieren, das werd ich hoffentlich noch schaffen :D

Java:
public int gebeAus(int zahl) {
	if (Zahl > 0) {
		for (int i=0;i<zahlen.length;i++) {
			if (zahl > zahlen[i]) continue;
			count = i + 1;
			break;
		}
	}
	return count;
}
 
Zuletzt bearbeitet:

selim

Aktives Mitglied
Aber
Java:
if (zahl > 0)
		{
		for (int i=0;i<zahlen.length;i++)
		{
		if (zahl > zahlen[i])
		continue;
		count = i + 1;
		//count = i;
		break;

er kommt nie rein!
1003 > 1000 somit continue!
 
S

SlaterB

Gast
41 > 10!
count = i + 1 ..also count = 0 + 1
41 ist kleiner als 100, deswegen wird count nicht mehr geändert! also bleibt als return-value die 1 stehen
count wird nur genau einmal gesetzt, dahinter steht break und Ende,
count ist nie 1, wird nicht geändert, sondern von 0 auf 2 gesetzt

mal abgesehen davon dass ein Instanzatttribut in verschiedenen Aufrufen der Methode geändert werden könnte
 

Pyrius

Mitglied
Hab mir eure Antworten angeschaut. Hab nochmal den code durchdacht.

Für mich scheint die antwort von selim am logischsten

GebeAus(41); Lösung: 2 <-- 41 ist größer als 10 [0] aber kleiner als 100[1] count= i[1] + 1 somit = 2
GebeAus(-5); Lösung: 0 <--- ist kleiner als die vorgaben (zahlen), die for schleife wird nicht erreicht. Count steht immernoch auf 0.
GebeAus(1003); Lösung: 0 <--- ist größer als die vorgaben (zahlen), deshalb immer continue. Count steht immernoch auf 0.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Boolean value ohne Kontrollstrukturen ändern Java Basics - Anfänger-Themen 5
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
P Kontrollstrukturen Java Basics - Anfänger-Themen 1
P Kontrollstrukturen aufräumen Java Basics - Anfänger-Themen 2
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
A Ergebnis einer Methode bei einer anderen verwenden Java Basics - Anfänger-Themen 13
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
Asura Falsches Ergebnis aufgrund der Nachkommastelle Java Basics - Anfänger-Themen 6
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
J warum ist das ergebnis 45? Java Basics - Anfänger-Themen 5
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
D ergebnis.matches("[1-9]?[0-9].[0-9][0-9]?") ein teil eines größeren Strings Java Basics - Anfänger-Themen 12
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
V Operatoren Warum kommt nicht das gewünschte Ergebnis dieser Operation? Java Basics - Anfänger-Themen 3
E Bruch erstellen - Von Int zu Double Ergebnis Java Basics - Anfänger-Themen 24
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
TomatenBrot447 Programmieraufgabe - Grafische Oberfläche- falsches Ergebnis? Java Basics - Anfänger-Themen 15
J Kosinussatz liefert falschs Ergebnis Java Basics - Anfänger-Themen 2
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
J Ergebnis immer 0 Java Basics - Anfänger-Themen 8
P ergebnis einer schleife wiedergeben Java Basics - Anfänger-Themen 8
Anfänger2011 Frame zeigt nicht gewünschtes Ergebnis an ... Java Basics - Anfänger-Themen 5
AssELAss Datentypen BigDecimal Vergleichen ob Ergebnis >= 200 Java Basics - Anfänger-Themen 5
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
U ArrayList.get() liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
T Methoden Quadratwurzel - Kriterium für genaues Ergebnis Java Basics - Anfänger-Themen 2
I Random Ergebnis ausgeben und Gewinner ausgeben. Java Basics - Anfänger-Themen 3
X Ergebnis speichern! Java Basics - Anfänger-Themen 1
J Ergebnis wird gespammt sowie eine else if Frage Java Basics - Anfänger-Themen 2
P Variablen Negatives Ergebnis bei Multiplikation von großen Zahlen Java Basics - Anfänger-Themen 2
W Methoden While Schleifen Ergebnis im String speichern Java Basics - Anfänger-Themen 5
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
P Temperatur Umrechner gibt nur ein Ergebnis aus Java Basics - Anfänger-Themen 2
L Schleifen ergebnis zusammenfassen Java Basics - Anfänger-Themen 2
L Schleifen ergebnis zusammenfassen Java Basics - Anfänger-Themen 9
M Hilfe JTextfield Ergebnis Java Basics - Anfänger-Themen 2
P Map liefert bei put null als Ergebnis Java Basics - Anfänger-Themen 6
Xendarii Quicksort gibt kein Ergebnis aus Java Basics - Anfänger-Themen 13
W nicht richtiges Ergebnis /Kreditberechnung Java Basics - Anfänger-Themen 5
O Werte aus ArrayList multiplizieren und dann Ergebnis addieren Java Basics - Anfänger-Themen 3
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
R POI HSSF liesst in Excel Formel statt Ergebnis Java Basics - Anfänger-Themen 4
B Erste Schritte ergebnis der funktion in der main-methode ausgeben Java Basics - Anfänger-Themen 7
P for Schleife, gleiches ergebnis mit und ohne {} Java Basics - Anfänger-Themen 13
R ArrayList.add() führt nicht zu gewünschtem Ergebnis Java Basics - Anfänger-Themen 2
P Ergebnis sollte double sein ... Java Basics - Anfänger-Themen 5
S Datei einlesen und Ergebnis wieder in Datei schreiben Java Basics - Anfänger-Themen 5
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
K OOP Wertebereich Ergebnis von % Operator Java Basics - Anfänger-Themen 8
M sonderbares ergebnis Java Basics - Anfänger-Themen 3
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
M Normale Rechnung - komisches Ergebnis. Java Basics - Anfänger-Themen 10
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
T Methoden Testen und schaun ob richtiges Ergebnis? Java Basics - Anfänger-Themen 5
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
B Wiese wird das Ergebnis nicht gekürzt? Java Basics - Anfänger-Themen 11
G Datentypen char to int casten - falsches Ergebnis! Java Basics - Anfänger-Themen 6
F Mit Ergebnis weiterrechnen - Zinseszinsrechnung Java Basics - Anfänger-Themen 3
neurox Ergebnis der if-Bedingung weiter verwenden Java Basics - Anfänger-Themen 5
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
D JSP include wie bei php? (inhalt statt ergebnis einfügen)) Java Basics - Anfänger-Themen 24
S main-Methode gibt unerwartetes Ergebnis aus Java Basics - Anfänger-Themen 4
-horn- Prozentstatus bei gradem Ergebnis von x/y für 0,10,20.100% Java Basics - Anfänger-Themen 3
G Falsches Ergebnis Java Basics - Anfänger-Themen 3
cowabunga1984 Ergebnis mit Threads berechnen und per return zurückgeben? Java Basics - Anfänger-Themen 3
S atan liefert falsches Ergebnis Java Basics - Anfänger-Themen 6
-horn- Variable von PHP an Java übergeben und Ergebnis zurückgeben? Java Basics - Anfänger-Themen 10
D Ausgabe gibt falsches Ergebnis Java Basics - Anfänger-Themen 2
G Multiplikation falsches Ergebnis Java Basics - Anfänger-Themen 5
C if anweisung, falsches Ergebnis Java Basics - Anfänger-Themen 4
B Zwei int Werte dividieren - Ergebnis Double Java Basics - Anfänger-Themen 15
G divisions ergebnis runden Java Basics - Anfänger-Themen 3
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
M Mouse Listener liefert das ergebnis 2 mal! Java Basics - Anfänger-Themen 2
B equals() der Klasse Objects liefert unerwartetes Ergebnis Java Basics - Anfänger-Themen 17
1 Ergebnis in ein Jlabel bringen Java Basics - Anfänger-Themen 3
G Ergebnis nicht nachvollziehen? Java Basics - Anfänger-Themen 6
C Wie erhalte ich nur ganze Zahlen als Ergebnis einer Division Java Basics - Anfänger-Themen 4
S Eingelesenes Array in JTable bringt kein Ergebnis Java Basics - Anfänger-Themen 8
G komisches Ergebnis beim Addieren von doubles Java Basics - Anfänger-Themen 2
P Hilfe gesucht Java Basics - Anfänger-Themen 11
Scappy Java Lernpartner gesucht! Java Basics - Anfänger-Themen 40
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
I Wasserzeichen API gesucht Java Basics - Anfänger-Themen 2
S Anfängeraufgaben gesucht Java Basics - Anfänger-Themen 29
U BestPractise für Deployment unter Windows gesucht Java Basics - Anfänger-Themen 12
R OOP Einfaches Programmierbeispiel für Assoziation, Aggregation und Komposition gesucht Java Basics - Anfänger-Themen 10
S ProgrammierHilfe dringend gesucht ( Icon bewegen) Java Basics - Anfänger-Themen 9
W Neues Lern-Projekt gesucht Java Basics - Anfänger-Themen 8
CT9288 Permanent laufender loop mit Eingabefunktion gesucht Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben