Java Schleife

  • Themenstarter Themenstarter tanye
  • Beginndatum Beginndatum
T

tanye

Gast
Hi !

Also ich bin hier neu im Forum und wende mich mit nem kleinen Problem an euch ...
Ich muss ein Programm schreiben , dass so lange Zahlen vom User einließt , bis eine negative Zahl eingegeben wird , dass füührt zum Abbruch worafuhin das Programm alle (ausschließlich der negativen Zahl) bis dahin eingegebenen Zahl addiert ...
So weit bin ich gekommen :

Java:
import javax.swing.*; 



public class schleife { 

	
public static void main (String args[]){ 
	

int n; 


do

{ 


	String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 
	

	
	n=Integer.parseInt(t);

}while (n>=0);

System.out.println (n);

}
}
[/COLOR]
Aber ich weiß nicht wie ich den letzten Schritt hinbekomme , sprich die Addition der Zahlen ... 😱
 
Naja, zum Schluss hast du ja nur noch die letzte Zahl. Das musst du natürlich ändern. Entweder bildest du schon in der Schleife die Summe (
Code:
sum+=n;
), oder du speicherst die eingegebenen Zahlen in einer Liste. Dann kannst du ja nach der Schleife noch mal über die ganze Liste laufen und die aufsummieren.
 
Hmm also die erste Möglichkeit verstehe ich vom Prinzip , aber wo muss das rein ? :S ... Letzteres check ich garnicht sorry 😳
 
aber sum muss doch definiert werden oder nicht ? ... mit +=n kannte ich , dann addiert der alle zahlen bis dahin oder ? und wie mach ich das mit der negativen zahl ? die darfja nciht addiert werden ...
 
Die Erklärung von Xhelp ist besser .. Sorry
 
Zuletzt bearbeitet von einem Moderator:
Code:
sum+=n;
ist nichts anderes als
Code:
sum=sum+n;
. Und ja, die Variable muss du natürlich noch definieren, so wie dein n und auch außerhalb der Schleife.
Du kannst ja die negative Zahl anschließend abziehen, die hast du ja dann noch in
Code:
n
Oder du machst die Summe VOR der Eingabe, dann kommt es gar nicht dazu, dass die negative Zahl aufsummiert wird.
 
Java:
import javax.swing.*; 



public class schleife { 

	
public static void main (String args[]){ 
	

int n; 
int sum;


do

{ 


	String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 
	

	
	n=Integer.parseInt(t);
	
	
	
	sum=Integer.parseInt(t);
	
	sum=sum+n;
	
}while (n>=0);


System.out.println (sum);

}
}

Ich habs nur so hinbekommen , wenn ich das sum vor die Eingabe setze ist alles fehlerhaft iwie ... Tut mir leid bin grad äußerst verwirrt -.-
 
Deklarier dein n wie folgt:
[JAVA=11]
int n=0;
[/code]
Dann kannst du auch die Summe vor der Eingabe machen... theoretisch

P.S. Es wäre übersichtshalber besser, wenn du wenigstens vor dem Posten hier die ganzen Leerzeilen rauslöschen würdest.
 
Hi,

die Zeile 28 muss weg. Und du kannst die Summierung [c]sum=sum+n;[/c] vor die Eingabe setzen wenn
du "sum" und "n" vorher (Zeilen 11-12) mit 0 belegst.
 
Ok sorry für die Leerzeichen ersma ... Hab das jetzt so gemacht :

Java:
import javax.swing.*; 
public class schleife { 	
public static void main (String args[]){ 	
int n=0; 
int sum;

sum=Integer.parseInt(t);

sum=sum+n;

do

{ 

	String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 
	
	n=Integer.parseInt(t);
	
}while (n>=0);


System.out.println (sum);

}
}

"t cannot be resolved to a variable" ...

Das liegt doch daran , dass
Java:
String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 
	
	n=Integer.parseInt(t);

im "do" drin ist oder ? Und wenn ich das aber auch oben rein setze funktioniert das nicht :shock:
 
Hi,

die Zeile 28 muss weg. Und du kannst die Summierung [c]sum=sum+n;[/c] vor die Eingabe setzen wenn
du "sum" und "n" vorher (Zeilen 11-12) mit 0 belegst.


Java:
import javax.swing.*; 

public class schleife { 

	
public static void main (String args[]){ 
	

int n=0; 
int sum=0;



sum=sum+n;

do

{ 

	String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 
	
	n=Integer.parseInt(t);
	
}while (n>=0);


System.out.println (sum);

}
}

Jetzt kommt immer 0 raus ;(
 
Allein die Tatsache, dass kein + in dem Programm vorkommt würde mir sorgen machen ^^

ach da oben ist es 😉

Soweit oben wird es nur einmal ausgeführt oder?
 
Zuletzt bearbeitet von einem Moderator:
Die Summierung muss natürlich innerhalb der Scheife passieren, vor dem Einlesen bzw. parsen des Strings.

SUPER ! Danke 😀 das war das Problem :applaus:

Ich schreib den richtigen Code noch einmal auf 🙂

Java:
import javax.swing.*; 
public class schleife { 
	
public static void main (String args[]){ 
	
int n=0; 
int sum=0;

do
{ 
	sum=sum+n;
	String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 
	
	n=Integer.parseInt(t);
	
}while (n>=0);

System.out.println (sum);

}
}
 
Wozu den Umweg über sum???

Einfach im Anfangscode

Java:
//n=Integer.parseInt(t); diese Zeile ersetzen durch
n+=Integer.parseInt(t);

EDIT: Sorry - das ist natürlich Schei.... - es ist noch zu früh für mich - dann klappt der Abbruch ja nicht
Mea culpa🙂
 

Neue Themen


Zurück
Oben