Sichbarkeit einer Variable

chillerStudent

Bekanntes Mitglied
Guten Tag,

ich habe diesen code hier:

Java:
int count=0;
			for(int u=0; u<=a; u++) {
				int s=In.readInt();
				count+=s;
			}
			if(a==-1) {
				System.out.println();
			} else {
				System.out.println("Kontrollsumme: "+count);
			}
			count=0;

Ich möchte, dass die Variable count nach dem ausgeben gelöscht wird. Das heißt es soll kein Wert mehr in der Variable drin steht, sodass bei der wiederholung count bei null anfängt. Wenn ich count in der forschleife deklariere dann kann ich nicht diese nicht mehr aushalt ausgeben.
Was muss ich hier verändern?
 
verstehe zwar nicht genau was du meinst, aber

Java:
count = null; // ?

zumindest wäre count dann ohne Wert.
 
Ich möchte, dass die Variable count nach dem ausgeben gelöscht wird.
Variablen kannst du nicht "löschen".

Das heißt es soll kein Wert mehr in der Variable drin steht
Geht nicht, primitive haben immer einen Wert. Objekte können null sein. "Nicht" drin stehen kann in einer Variablen aber nichts.

sodass bei der wiederholung count bei null anfängt
Setz doch vor der for Schleife count einfach auf 0.

EDIT:
@Fab1: primitiven Typen kann man nicht
Code:
null
zuweisen.
 
Guten Tag,

ich habe diesen code hier:

Java:
int count=0;
			for(int u=0; u<=a; u++) {
				int s=In.readInt();
				count+=s;
			}
			if(a==-1) {
				System.out.println();
			} else {
				System.out.println("Kontrollsumme: "+count);
			}
			count=0;

Wenn es sich bei deinem Code um eine Methode handelt fängt sie durch

Java:
int count=0;

automatisch immer bei 0 an.

Das Zweite

Java:
count=0;

kannste dir sparen
 
auch interessant

was sind

"a" und "In" *zu mal es wenn dann schon "in" heißen müsste ... variablen schreibt man KLEIN ...
 
Ok, hier der komplette code:

Java:
int a=0;
		int j=0;
		
		Out.open("20numbers.txt");
		while(a>=0) {
			System.out.println("zahl");
			a=In.readInt();
			
			int i;
			for(i=0; i<a; i++) {
				j = (int) (Math.random()*9); //Zufallszahl zwischen 0 und 9 
				Out.print(j+" ");
			}
			Out.println();
			In.open("20numbers.txt");
			int count=0;
			for(int u=0; u<=a; u++) {
				int s=In.readInt();
				count+=s;
			}
			if(a==-1) {
				System.out.println();
			} else {
				System.out.println("Kontrollsumme: "+count);
			}
			In.close();
		}
		Out.close();
 
wenn "In" eine Klasse ist *ziemlich schwacher name* ist die methode readInt() darin also STATIC ? ...
oder ist "In" ein referenz-objekt ?

sorry ... aber das dem stück was du gepostet hast wird dein problem NICHT ersichtlich ...

wenn man das was du da hast in eine methode / ein loop packt ist count IMMER =0 ...

@Fab1
btw : primitiver datentyp = null ? ... sorry .. aber das geht nicht
 
wenn "In" eine Klasse ist *ziemlich schwacher name* ist die methode readInt() darin also STATIC ? ...
oder ist "In" ein referenz-objekt ?

sorry ... aber das dem stück was du gepostet hast wird dein problem NICHT ersichtlich ...
Für das Problem ist das auch total irrelevant...
 
wenn "In" eine Klasse ist *ziemlich schwacher name* ist die methode readInt() darin also STATIC ? ...
oder ist "In" ein referenz-objekt ?

sorry ... aber das dem stück was du gepostet hast wird dein problem NICHT ersichtlich ...

wenn man das was du da hast in eine methode / ein loop packt ist count IMMER =0 ...

In und Outclass kannst du hier runterladen und deine Fragen selbst beantworten.

Sprechen Sie Java?
 
ist ja richtig ... war nur die frage am rand um "das stück" code halbwegs verstehen zu können
außerdem : selbst wenn man entsprechende klassen diesen namens hat und darin entsprechende methoden *welche bei so einem aufruf static sein müssen* wundert mich das CLOSE am ende *wesshalb das mit dem static schwer wird und daher der variablenname falsch gewählt ist*

@TO

wenn das KOMPLETTER code wäre dann hätte man wenigstens ne methoden-signatur ... oder am besten gleich die komplette klasse ... aber DAS da ist definitiv kein KOMPLETTER code sonder nur ein AUSSCHNITT aus einer methode ...
 
danke .. hab n blick reingeworfen ...
ich hätte dafür zwar java.util.Scanner genommen ... aber K

btw : verlass dich mal nur zu sehr auf deine uni-helper klassen ... wenn du i-wann damit mal was eigenes machen willst rattert es fehlermeldungen ohne ende weil diese klassen eben nicht vorhanden sind
 
Java:
            int count=0;
            for(int u=0; u<=a; u++) {
                int s=In.readInt();
                count+=s;
            }
count kann da gar nicht 12 oder irgendwas anderes sein. Vor der Schleife ist count immer 0!

Das Problem liegt wohl eher an der 20numbers.txt, du schreibst a zahlen in die Datei, liest alles auch und summierst die auf.
Dann schreibst du nochmal nen paar Zahlen rein. Werden die alten überschrieben? Ich denke nicht. Also hast du im zweiten durchlauf 2xa zahlen drinstehen die du aufsummierst, im dritten durchlauf 3xa zahlen, usw.
 
mhhh.. ist bissl durcheinander.

Ich weiß nicht ob den code richtig versteht. Mein ziel:

erst erstelle ich die 20numbers datei und schreibe a zahlen rein. Mit In.open(...) lese ich die zahlen die in der 20numbers drin stehen und gebe diese aus. zusätzlich möchte ich a zahlen addieren und ausgeben bevor er mich nochmal nach der nächsten zahl abfragt.
 
kleiner tippfehler. bitte verbessern.
es heißt nicht
Java:
for(int u=0; u<=a; u++)
sondern
Java:
for(int u=0; u<a; u++)
das gleichzeichen vor dem a muss weg.

Wenn ich count in der forschleife ausgebe, sieht man es genau dass der wert von count immer gespeichert wird.
 
Ich stell mal eine Vermutung in die Runde: Statt eine neue txt, werden einfach neue Werte hinten drangehängt, so scheint es, das count nicht von 0 startet.
 
wenn ich z.b für a=2 eingebe und er lifert mir 3 und 5, also 8
nun gebe ich als nächsten für a=3 ein und er liefert mir z.b 2 0 4, er soll mir dann 2+0+4 rechnen und 6 ausgeben
 
Variablen "löschen".

Zwei Möglichkeiten:
Entweder eine Zuweisung, wodurch der alte Wert überschreiben wird (bei Nicht-primitiven ändert sich die Referenz),
oder der Zustand, in dem eine Variable nicht mehr referenziert wird, und dann dem GC überlassen wird, der sie wegräumen kann.

Letzterer Zustand wird z.B. erreicht, wenn die Var. innerhalb eines Blockes, Schleife, Methode usw. deklariert wird, die zum Zeitpunkt der Programmausführung betreten und wieder verlassen wird. Bessere Beschreibung dessen fällt mir nicht ein.
 
Variablen "löschen".

Zwei Möglichkeiten:
Entweder eine Zuweisung, wodurch der alte Wert überschreiben wird (bei Nicht-primitiven ändert sich die Referenz),
oder der Zustand, in dem eine Variable nicht mehr referenziert wird, und dann dem GC überlassen wird, der sie wegräumen kann.

Letzterer Zustand wird z.B. erreicht, wenn die Var. innerhalb eines Blockes, Schleife, Methode usw. deklariert wird, die zum Zeitpunkt der Programmausführung betreten und wieder verlassen wird. Bessere Beschreibung dessen fällt mir nicht ein.

wenn ich count innerhalb der forschleife deklariere dann kann ich nach schleife count nicht ausgeben. Ich möchte nur einmal count ausgeben und nicht bei jeder wiederholung.
 
Ja, dann musst du die 20numbers.txt, insofern möglich,, eben ändern?

was soll ich da ändern? hast du ein Vorschlag? Das sind zufallszahlen. Ich glaub das Problem liegt eher beim öffnen, schliessen und erstellen der txt dateien. Hab da schon vieles versucht. bin gescheitert.
 
How-Tos im Internet! Die Vielzahl der Lesenden gibt ihnen recht und bestätigt deren Erfolg.
 
Hi,

wie ist den der aktulle Quellcode? - Und wieso lassen sich die Probleme nicht mit den o.g. Hilfen lösen?

Ich mein zählen von Zahlen - Einfacher geht nicht.

[OT]
Was ist das für ein merkwürdiger Studiengang. Ist das ein Kernfach im Studiengang INformatik. Sieht für mich aus wie ein Nebenfach in Theologie.

Ich mein hier sind nun mindestens DREI Studenten, die ABSOLUT nicht mit dem Stoff hinterherkommen. - Aber zusammenarbeit tuen sie auch nicht. Bücher lesen tuen sie auch nicht. Google scheint unbekannt zu sein. Raten statt programieren. Jeder Thread 100 Beiträge und keine Lösung in Sicht. :bahnhof:
[/OT]
 

Neue Themen


Zurück
Oben