Java If? While? For? Do While?

Status
Für weitere Antworten geschlossen.

FreddyCollin

Ensign
Registriert
Dez. 2014
Beiträge
236
Hi, ich bin java Anfänger und habe grade bei dieser Aufgabe ein Problem. Da ich noch sehr unerfahren in Schleifen und Anweisungen bin, bin ich mir nicht sicher was sich zur Prüfung des Gewichts am besten eignet. Muss ich eine If-Anweisung implentieren? Oder ist das ein Fall für eine Schleife?
 
Das sind einfache IF-Abfragen in denen du die einzelnen Werte addieren sollst.

int gewicht = 0;
if(skript.equals.... bla bla bla) gewicht + blubb
....

etc pp.
 
Du brauchst eine Methode dir das Gewicht des jeweiligen Inhalts wiedergibt. Also zB float script.getGewicht()
Die Rückgaben addierst du dann auf und überprüfst per If Anweisung ob x <= 1000gramm ist.

€: Ah sehe gerade, dass das Script etc gar keine eigenen Objekte sind. Anscheinend wird das Gewicht direkt als String gespeichert.
Dann musst du einfach diesen Wert auslesen und als Zahl dann mit den anderen addieren.
 
Die Lösung steht schon in der Aufgabe:

"Wenn ja,...." --> If/Else Abfragen

Falls noch weiter fragen sind Code posten, da es kein Hausaufgaben Forum ist ;)
 
Schleifen kann man super für Datenstrukturen benutzen die man iterieren kann, also eine Datenstruktur die du Schrittweise durchgehen kannst...^^

Etwa ein Array oder eine Liste.
 
Also ich würde erstmal eine Main-Klasse erstellen, dann die Klasse Rucksack, dort dem Konstruktor die Attribute übergeben und setzen. Anschließend die Methode (in der Klasse Rucksack) gewichtPruefen() implementieren, wobei die void sein soll (ich hätte eher boolean gemacht, da ja nur "ja" oder "nein" zurückkommen soll... aber ok...). In der Main erstellst du ein Objekt von Rucksack, rufst damit die Methode gewichtPruefen() auf (die dir dann true oder false zurückgeben soll... wenn boolean als rückgabewert statt void...) und das wars dann eigentlich auch schon... prüfen solltest du aber auch unerwartete Werte, wie zB negative Werte sollten nicht zulässig sein (wobei dies vll schon etwas fortgeschritten ist...)
 
Cool Master schrieb:
Die Lösung steht schon in der Aufgabe:

"Wenn ja,...." --> If/Else Abfragen

Falls noch weiter fragen sind Code posten, da es kein Hausaufgaben Forum ist ;)

Ich weiß ich weiß :b - bin nur grade erst am Code schreiben. Bisher erst hier:
Code:
public class Rucksack {
	
	// Klassendiagramm Variablendeklaration
	public String skript;
	public static final int proTechSkript=500;
	public static final int marketingSkript=250;
	public static final int bwlSkript=750;
	public String getraenk;
	public static final int colaGetraenk=330;
	public static final int fantaGetraenk=330;
	public static final int bierGetraenk=500;
	public String gluecksbringer;
	public static final int baerchenGB=200;
	public static final int elefantGB=300;
	public int stifte;
	public static final int stiftGewicht=5;
		
	
	
	
	// Standard-Konstruktor
	public Rucksack(String skript, String getraenk, String gluecksbringer,
			int stifte) {
		super();
		this.skript = skript;
		this.getraenk = getraenk;
		this.gluecksbringer = gluecksbringer;
		this.stifte = stifte;
	}
	
	
	// Main-Methode
	public static void main (String[]args){
		Rucksack r1 = new Rucksack("ProTech","Fanta","Bär",2);
		
		//
		r1.gewichtPruefen();
		
		
	}
	
	
	//Prüf-Schleife
	if (){
		
	}
	
	
	//Methode gewichtPruefen
	public void gewichtPruefen(){
		
	}

}
 
if ist keine Schleife sondern eine Anweisung, for und while bzw dowhile sind Schleifen... Das mit if() -> ??? mhm, bin mir nicht sicher was du da machen willst. Ich würde eher in der public boolean gewichtPruefen(){ if-Kaskadierung und eventuell rekursiver aufruf, wenn die Sachen in beliebiger Reihenfolge in den Rucksack kommen } -> jedenfalls machst du "Logik" der Aufgabe in der gewichtPruefen() Methode

PS: Hab das bisher nie so gemacht mit der main(String[] args) -> bisher war das bei mir immer eine separate Klasse, also Main.java (was ich auch empfehlen würde...)

EDIT: dann könntest du in der Main folgendes machen:
if(r1.gewichtPruefen() == false) "Rucksack zu schwer" else "Rucksack in Ordnung"
 
Zuletzt bearbeitet:
misa555 schrieb:
if ist keine Schleife sondern eine Anweisung, for und while bzw dowhile sind Schleifen... Das mit if() -> ??? mhm, bin mir nicht sicher was du da machen willst. Ich würde eher in der public boolean gewichtPruefen(){ if-Kaskadierung und eventuell rekursiver aufruf, wenn die Sachen in beliebiger Reihenfolge in den Rucksack kommen } -> jedenfalls machst du "Logik" der Aufgabe in der gewichtPruefen() Methode

PS: Hab das bisher nie so gemacht mit der main(String[] args) -> bisher war das bei mir immer eine separate Klasse, also Main.java (was ich auch empfehlen würde...)

Ich versteh" kaskadierung" und "rekursiver aufruf" nicht... zum rest:
- Main Methode in der gleichen klasse weils ja ein miniprogramm ist und wir bisher immer so gemacht haben
- ich darf die gewichtPruefen Methode nicht boolean machen, weil in der AufgStellung void angegeben ist :( ich wäre weiter so in etwa verfahren:
Code:
if (r1.gewichtPruefen<=1000){
		System.out.println("Rucksack i.O");
		
	}
 
Wie willst du das machen: if (r1.gewichtPruefen()<=1000)
das geht nur wenn deine Methode so heißen würde: public int gewichtPruefen()
int ist hierbei der Rückgabewert...

wenn du void machst, müsstest du in der Methode das Objekt von Rucksack (also r1) anpassen. (würde es halt nicht so lösen, sondern mit int oder boolean als Rückgabe und entsprechend argumentieren, ich meine das ist fast Geschmacksache wie man das macht, weder das eine noch das andere ist falsch, hängt aber vom Anwendungskontext ab)
 
So kannst du das prüfen des Gewichts abfragen, wenn gewichtPruefen der Name einer Variable ist, bei Methoden musst du die Klammerung beachten also:
Code:
r1.gewichtPruefen()
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben