|
You last visited: Today at 00:01
Advertisement
[C#]Fehler: Nicht zugewiesene Variable
Discussion on [C#]Fehler: Nicht zugewiesene Variable within the .NET Languages forum part of the Coders Den category.
08/18/2014, 18:30
|
#1
|
elite*gold: 0
Join Date: Aug 2014
Posts: 5
Received Thanks: 2
|
[C#]Fehler: Nicht zugewiesene Variable
Moin,
übe mich gerade ein bisschen an C# und habe versucht einen kleinen Taschenrechner zu programmieren doch bekomme folgende Fehlermeldung:
Quote:
|
Fehler 1 Verwendung der nicht zugewiesenen lokalen Variablen "ergebnis"
|
Hier der Code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErsteKonsolenanwendung
{
class Program
{
static void Main(string[] args)
{
double zahl1, zahl2, ergebnis;
string operand;
Console.WriteLine("Bitte geben sie die erste Zahl ein:");
zahl1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Bitte geben sie die zweite Zahl ein:");
zahl2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Bitte wählen sie den Operand aus:");
operand = Console.ReadLine();
if (operand == "+")
{
ergebnis = zahl1 + zahl2;
}
else if (operand == "-")
{
ergebnis = zahl1 - zahl2;
}
else if (operand == "/")
{
ergebnis = zahl1 / zahl2;
}
else if (operand == "*")
{
ergebnis = zahl1 * zahl2;
}
else
{
Console.WriteLine("Der ausgewählte Operand wird nicht unterstützt, weshalb wir das Ergebnis \"0\" als Ausgabeergebnis verwenden!");
}
Console.WriteLine(ergebnis);
Console.ReadKey();
}
}
}
Unten bei
Quote:
|
Console.WriteLine(ergebnis);
|
soll der Fehler liegen...
Ich habe aber doch die Variable oben zugewiesen!?
Quote:
|
double zahl1, zahl2, ergebnis;
|
Was ist falsch?
Gruß
D!Zzl3
|
|
|
08/18/2014, 18:41
|
#2
|
elite*gold: 1
Join Date: Aug 2013
Posts: 1,898
Received Thanks: 1,346
|
Du hast hier deklariert:
Code:
double zahl1, zahl2, ergebnis;
string operand;
und hier initialisiert (sprich, Speicher zugewiesen)[durch benutzer]:
Code:
zahl1 = Convert.ToDouble(Console.ReadLine());
zahl2 = Convert.ToDouble(Console.ReadLine());
operand = Console.ReadLine();
Allerdings hast du für ergebnis keinen Speicher reserviert. Einfach:
Code:
double zahl1, zahl2, ergebnis = 0.0;
string operand;
|
|
|
08/18/2014, 18:43
|
#3
|
elite*gold: 0
Join Date: Aug 2014
Posts: 5
Received Thanks: 2
|
Einwandfrei! hat funktioniert!
Danke dir
|
|
|
08/18/2014, 18:48
|
#4
|
elite*gold: 18
Join Date: Jun 2009
Posts: 1,089
Received Thanks: 301
|
Und wäre es nicht sinnvoller für die Operatoren switch anstatt if's zu nehmen?
Code:
switch (operand)
{
case "+":
ergebnis = zahl1 + zahl2;
break;
case "-":
ergebnis = zahl1 - zahl2;
break;
case "/":
ergebnis = zahl1 / zahl2;
break;
case "*":
ergebnis = zahl1 * zahl2;
break;
default:
Console.WriteLine("Der ausgewählte Operand wird nicht unterstützt, weshalb wir das Ergebnis \"0\" als Ausgabeergebnis verwenden!");
break;
}
|
|
|
08/18/2014, 19:36
|
#5
|
elite*gold: 1
Join Date: Aug 2013
Posts: 1,898
Received Thanks: 1,346
|
Wenn wir schon dabei sind, kannst du auch nur Zahlen sowie ein "," sowie ein "-" [am Anfang] zulassen (  ):
Code:
static double ReadNumber()
{
var buf = new StringBuilder();
for (; ; )
{
var key = Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter && buf.Length > 0)
{
Console.WriteLine();
return Convert.ToDouble(buf.ToString());
}
else if (key.Key == ConsoleKey.Backspace && buf.Length > 0)
{
buf.Remove(buf.Length - 1, 1);
Console.Write("\b \b");
}
else if (System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator.Contains(key.KeyChar) && buf.ToString().IndexOf(System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator) == -1)
{
buf.Append(key.KeyChar);
Console.Write(key.KeyChar);
}
else if ("-".Contains(key.KeyChar) && buf.ToString().IndexOf("-") == -1 && buf.ToString() == "")
{
buf.Append(key.KeyChar);
Console.Write(key.KeyChar);
}
else if ("0123456789".Contains(key.KeyChar))
{
buf.Append(key.KeyChar);
Console.Write(key.KeyChar);
}
else
{
Console.Beep();
}
}
}
Und dann einfach:
Code:
Console.WriteLine("Bitte geben sie die erste Zahl ein:");
zahl1 = ReadNumber();
Console.WriteLine("Bitte geben sie die zweite Zahl ein:");
zahl2 = ReadNumber();
|
|
|
08/19/2014, 00:30
|
#6
|
elite*gold: 0
Join Date: Aug 2014
Posts: 5
Received Thanks: 2
|
Ich habe mich zum ersten mal mit C# auseinandergesetzt und kenne die Methoden nicht so gut, danke für die Vorschläge :P
Das mit den Switch sieht einfacher aus ^^
Das zweite von Black Tiger verstehe ich nicht so auf Anhieb
Es gehört vlt. nicht in das Thema hier rein aber habt ihr ein paar Tipps für Einsteiger?
-Wo und wie ich die Sprache lernen kann?
-Kennt ihr vlt. Youtube Channels oder andere Tutorial-Umgebungen die einem nicht direkt mit Fachbegriffen überschütten sondern Schritt für Schritt an die Materie heranführen?
Ich habe einiges gefunden aber die meisten Sachen werden nur theoretisch oder unzureichend erklärt...
|
|
|
08/19/2014, 08:14
|
#7
|
elite*gold: 113
Join Date: Dec 2009
Posts: 16,685
Received Thanks: 4,450
|
ein grundlagenbuch kaufen und danach via tutorials/bücher in deine zielrichtung gehen.
|
|
|
08/19/2014, 14:56
|
#8
|
elite*gold: 2
Join Date: May 2010
Posts: 2,254
Received Thanks: 1,919
|
Quote:
Originally Posted by Shanks
ein grundlagenbuch kaufen und danach via tutorials/bücher in deine zielrichtung gehen.
|
Man braucht keine Bücher. Schau dir im Internet einfach das an was du brauchst und es gibt für c# genug Tutorialreihen.
|
|
|
08/20/2014, 21:17
|
#9
|
elite*gold: 0
Join Date: Aug 2014
Posts: 5
Received Thanks: 2
|
Quote:
Originally Posted by Shanks
ein grundlagenbuch kaufen und danach via tutorials/bücher in deine zielrichtung gehen.
|
Kennst du ein gutes Buch? Sehe auf Amazon auf der ersten Seite gleich 12 Bücher mit Bewertungen +4 Sterne... Würde mich aber freuen wenn hier jemand ist der mehr Erfahrung hat mit C# und mir vlt. direkt eins empfehlen kann... deswegen frage ich auch ^^
Quote:
|
Man braucht keine Bücher. Schau dir im Internet einfach das an was du brauchst und es gibt für c# genug Tutorialreihen.
|
Ich hatte doch oben erwähnt das ich mir schon ein paar Tutorialreihen angeschaut habe. Bei den einen findet man die ersten paar Videos gute Erklärungen... später dann kommen nur noch Sätze wie ""Behandle/Erkläre ich später was ich gerade mache.." (zur Erklärung kommt es dann doch nie) oder sie fangen an unverständlich zu werden, erklären was und im nächsten Moment korrigieren sie es doch wieder und sorgen für Verwirrung. Ein paar Tutorialreihen brachen sogar irgendwann ab und es hieß nur noch: "Wird bald fortgesetzt" - Stand vor einem Jahr ^^
Ich bin selbst nicht zu Blöd zum Suchen nur wenn man selbst keine Ahnung hat von der Materie ist es schwierig zu wissen welche Tutorials gut sind und welche nicht... Wie schon eben erwähnt: Deswegen frage ich ja, ich suche nicht nach dem ultimativen Tutorial was auf mich zugeschnitten ist und mir alles in nur ein paar Stunden erklärt  Aber vlt. nach einem wo jemand hier aus dem Forum sagen kann: "Mithilfe von diesem Buch oder diesen Videos hatte ich einen, wie ich finde, sehr guten Einstieg in die Sprache."
Wie auch immer: Trz. danke für die Antworten, ich informiere mich mal weiter :P
Gruß
Wasner
|
|
|
08/20/2014, 21:40
|
#10
|
elite*gold: 113
Join Date: Dec 2009
Posts: 16,685
Received Thanks: 4,450
|
Quote:
Originally Posted by Ih¢sãs123
Man braucht keine Bücher. Schau dir im Internet einfach das an was du brauchst und es gibt für c# genug Tutorialreihen.
|
Genau so entstehen die Leute, die jeden 2ten Tag einen neuen Thread erstellen, mit einer Frage, die mit dem Lesen eines Grundlagenbuches nie aufgekommen wären.
Hierbei gilt der Grundsatz:
Halbwissen ist gefährliches Wissen.
Quote:
Originally Posted by D!zzl3
Kennst du ein gutes Buch? Sehe auf Amazon auf der ersten Seite gleich 12 Bücher mit Bewertungen +4 Sterne... Würde mich aber freuen wenn hier jemand ist der mehr Erfahrung hat mit C# und mir vlt. direkt eins empfehlen kann... deswegen frage ich auch ^^
|
Ich persönlich habe mir C# mit diesem Buch hier angeeignet:
Man mag mich jetzt vielleicht dafür hassen, dass ich ein Buch von Galileo Computing empfehle, jedoch fand ich das sehr angenehm & verständlich geschrieben, und ich habe bisher nichts gemerkt, was dort unzureichend erklärt worden ist.
Müsstest halt evtl schauen ob eine 2013/2014er Auflage bereits draussen ist, jedoch ist das 2012er auch jetzt noch aktuell, sollte somit kein Problem darstellen.
|
|
|
08/20/2014, 21:46
|
#11
|
elite*gold: 1
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
|
Falls du der englischen Sprache mächtig bist, würde ich dir dieses Buch empfehlen
Gibt es auch als deutsche Ausgabe, aber ich würde immer englische Bücher deutschen vorziehen
OReilly macht eigentlich immer sehr gute Bücher, besitze selber 2 Stück von dem Verlag
|
|
|
08/20/2014, 23:56
|
#12
|
elite*gold: 0
Join Date: Aug 2014
Posts: 5
Received Thanks: 2
|
Danke für die Empfehlungen, ich schaue gleich mal ob ich mir nicht sogar beide hole... Viele Wege führen nach Rom und wenn ich in dem einen Buch was nicht verstehe, könnte ich nachsehen was das zweite Buch dazu sagt ^^
Englisch ist immer gut... die meisten Tutorials finde ich im englischen sogar verständlicher als im Deutschen
Habe auch gerade ne gute Tutorialreihe gefunden auf der Seite  ... Der Bob Tabor dort hat ein paar sehr gute Videos veröffentlicht, bin bis jetzt begeistert, der erklärt das echt Kevin-sicher ^^ Also falls jemand in einer ähnlichen Lage wie ich ist kann der mal da reinschauen :P
Danke euch  Ich melde mich die Wochen mal und gebe Feedback, hab ja noch Ferien  Bin aber auch weiterhin für weitere Vorschläge offen
|
|
|
08/21/2014, 07:33
|
#13
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
 - auch sehr stark.
|
|
|
08/21/2014, 07:34
|
#14
|
elite*gold: 1
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
|
C# in Depth ist aber nicht grade für Anfänger geeignet :x
|
|
|
08/21/2014, 07:57
|
#15
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
Quote:
Originally Posted by 'Heaven.
C# in Depth ist aber nicht grade für Anfänger geeignet :x
|
Hat ja niemand behauptet, trotzdem kann ich das Buch nur empfehlen.  Grundlagen hat man ja sowieso schnell drauf, da setzt das Buch dann an wenn man sich in C# spezialisieren will.
|
|
|
 |
|
Similar Threads
|
Variable wird nicht angezeigt
01/05/2013 - .NET Languages - 2 Replies
Hallo
ich habe 2 Formen und will die Variable aus Form1 in Form2 nutzen.
Dies mache ich so:
Das steht in Form1.
Public Class Form1
Public time As Integer
|
[Java] Variable nicht erkannt
04/14/2012 - General Coding - 3 Replies
Also ich weiß nich ob ich hier richtig bin, aber wohin sonst^^
Ich spiel grad ein bissl mit Java rum und wollte einen simplen Rechner, der +,-,* und / kann. Jedoch scheiter ich schon an +^^ Ich definiere bei + eine Variable mit int, die das Ergebnis aus dem 1. und 2. Textfeld berechnet, wandel es in einen String um und mache mit setText das ding ins Ergebnisfeld rein, funzt jedoch nicht. Im Ergebnis- Feld denk ich hab ich alles richtig, obwohl NetBeans einen Fehler anzeigt, das er die...
|
Vergleich einer Variable funktioniert nicht
12/29/2011 - AutoIt - 3 Replies
Hallo,
ich hab ein Problem mit dem Vergleichen eines Wertes aus einer Variable.
Und zwar lese ich einen Wert aus einem Quelltext aus: $Alter = StringRegExp(BinaryToString($oWebTcp.body), 'var chevalAge = (.*?);', 1) Das funktioniert super. Doch jetzt kommt das Problem, nämlich wenn ich jetzt den Vergleich machen will: if $Alter >= "24" then Führt er die schleife trozdem aus auch wenn $Alter garnicht größer oder gleich 24 ist. Und wenn ich Elseif $Alter < "24" then funktioniert auch nicht......
|
Überprüfen ob Variable Eine Variable ist
10/16/2010 - AutoIt - 26 Replies
Hey leute ich wollte fragen ob/wie man überprüfen kann
ob eine Variable eine Variable ist z.b. so
$k = 1
$i = $k
if $i = VARIABLE Then
msgbox(0,'$i ist eine variable!!','')
endif
PS:Wp releast man nochma TuT (z.b. für metin2??)
|
All times are GMT +1. The time now is 00:02.
|
|