Laden...

Variable ausserhalb von for()-Schleife?

Erstellt von alpha_c vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.657 Views
A
alpha_c Themenstarter:in
14 Beiträge seit 2008
vor 15 Jahren
Variable ausserhalb von for()-Schleife?

Hi, ich bin Einsteiger in C# programmiere jetzt mit einem Buch "richtig einsteigen: Programmieren lernen mit Visual c# 2008" , das Buch ist ganz schön Buggi, aber egal.

Mein Problem: Im Buch sind Aufgaben, wie z.b. mit Hilfe einer Schleife die zahlen 1 bis n sollen zusammenadiert werden ohne den gauss zu verwenden.

das blöde ist nur, das man eine variable die nicht in der schleife definiert ist. hier der code:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace kleinerGauss
{
	class Program
	{
		static void Main(string[] args)
		{
			int eingabe;
			long summe;

			Console.Write("Welche Zahl soll von 1 an addiert werden ? : ");
			eingabe = int.Parse(Console.ReadLine());

			for (int i = 0; i <= eingabe; i++)
			{
				summe += (long)i;
			}

			Console.WriteLine("Summe aller Zahlen von 1 bis {0} ist {1} ",eingabe,summe);


		}
	}
}

Fehlermeldung:

Fehler 1 Verwendung der nicht zugewiesenen lokalen Variablen "summe"

Im Buch wird emfolen die Variable ausserhalb zu deklarieren, was ich ja getan habe, der fehler bleibt. Ich weiss nicht weiter. Auch im Netz habe ich keine Hinweise gefunden, mit verschiedenen Suchenanfragen und Begriffen.

130 Beiträge seit 2005
vor 15 Jahren

In diesem Fall solltest/musst du die Variablen auch initialisieren.

J
3.331 Beiträge seit 2006
vor 15 Jahren

Fehlermeldung:

Fehler 1 Verwendung der nicht zugewiesenen lokalen Variablen "summe"

Feuerfalkes Antwort noch etwas genauer und begründet: Eigentlich sagt die Fehlermeldung alles aus. Du willst die Variable "summe" lokal (d.h. innerhalb der Schleife) verwenden, aber es wurde (vor der ersten Verwendung) kein Wert zugewiesen. Das sollte auch einleuchten: Mit was soll (long)i addiert werden, um den neuen Wert von summe zu erhalten?

Im Buch wird emfolen die Variable ausserhalb zu deklarieren, ...

Auch diese Notwendigkeit sollte einleuchten: Du willst am Ende der Schleife das Ergebnis wissen, also muss summe nach der for-Schleife noch gültig sein. Also muss es außerhalb der for-Schleife deklariert (und initialisiert) werden.

Auch im Netz habe ich keine Hinweise gefunden, mit verschiedenen Suchenanfragen und Begriffen.

Das ist vor allem bei Anfängerproblemen, aber auch in vielen anderen Fällen schwierig. Compilerfehler bekommen in der Regel eine CS-Nummer; zu dieser bekommt man in :rtfm: Erläuterungen.

Siehe auch [Hinweis] Bitte schau in die SDK-/MSDN-Doku und [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

Gruß Jürgen