Variablen auch ausserhalb der Schleifen nutzen?

eliasb

Mitglied
Hallo ;)

Ich wollte mal ausprobieren, ob ich mit C# z.B. auch einzelne Array-Elemente in Variablen speichern kann! Ich habe aber festgestellt, dass dies nicht möglich ist, da die Variablen nur in den Schleifen gültig sind!

Nun (endlich^^) zu meiner Frage:

Wie kann ich jedes einzelne Array-Element in eine Variable speicher?

Falls das nicht funktionier: Wie kann ich denn sonst beispielsweise bei einer mySQL-Abfrage, die empfangenen Daten abrufen?


MfG
;)
 
Die Variablen sind dort gültig, wo du sie definierst. Tust du das in einer Schleife, sind sie nur in einer Schleife gültig. Tust du das innerhalb einer Methode, dann eben nur in der Methode gültig usw.
 
aber wenn ich das, wie in dem Code unten mache, gibts auch eine Fehlermeldung!

Code:
using System;

namespace lernen8
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			int[] sArray = new int[10];
			int zahl2;
			
			for(int i=0; i < sArray.Length; i++)
			{
				sArray[i] = i * i;
			}
			
			foreach(int zahl in sArray)
			{
				zahl2 = zahl; 
				Console.WriteLine("sArray = {0}",zahl);
			}
			
			Console.WriteLine(zahl2);
			
			Console.ReadLine();
		}
	}
}

Fehler:
error CS0165: Use of unassigned local variable 'zahl2'

Also ist die Variable zahl2 nur in der Schleife deklariert worden, und ausserhalb der Schleife icht ansprechbar, oder?

PS: Vielen Dank für Deine Antwort!

MfG
 
Nein, er schreit, dass zahl2 möglicherweise keinen Wert hat!

Es kann sein, dass die foreach-Schleife nie durchrennt, da das Array auch leer sein könnte, wodurch zahl2 nie einen Wert zugewiesen bekommen würde.

mfg broetchen

P.S.: Das hier wäre die Erklärung des Fehlers, den der Compiler wirft.
 
Ähm, der Fehler sollte aber eigentlich schon kommen, wenn du dein Projekt kompilieren willst (wenn du Visual Studio nutzt).

Das hat damit zu tun, dass die Variablen initialisiert werden müssen.

Mach halt einfach ein int zahl2 = 0; und die Geschichte hat sich erledigt.
 
dann gibt es keine Möglichkeit, die Elemente eines Array in Variablen zu speichern?

PS: Vielen Dank für die Antwort! :)
 
Code:
using System;

namespace lernen8
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			int[] sArray = new int[10];
			int zahl2 = 0;
			
			for(int i=0; i < sArray.Length; i++)
			{
				sArray[i] = i * i;
			}
			
			foreach(int zahl in sArray)
			{
				if(zahl == 4)
				{
				zahl2 = zahl; 
				}
				
				Console.WriteLine("sArray = {0}",zahl);
			}
			
			Console.WriteLine(zahl2);
			
			Console.ReadLine();
		}
	}
}

Cool, so funktionierts!

Merke mir: Um ein array-Elemente in einer Variable zu speichern, MUSS die Variable ausserhalb der Schleife definiert und deklariert sein, richtig?

Vielen Dank!
 

Neue Beiträge

Zurück