Zum Inhalt springen

C# richtige Zahl erkennen


Azubine27

Empfohlene Beiträge

Hallo

ich habe bei dem nachfolgenden Thema ein Problem.

Ich habe eine Switchanweisung. Ich möchte prüfen ob die eingegebene Zahl tatsächlich eine ganze Zahl ist. Denn wenn es keine ganze Zahl ist, möchte ich eine Fehlermeldung ausgeben.

so lange es sich um eine ganze Zahl handelt, habe ich keine Probleme. Aber sobald ich eine Kommzahl eingebe gibt es natürlich eine Fehlermeldung, da es ja eine Integer Zahl ist. Macht ja auch Sinn. Aber ich habe das Ganze schon versucht, indem ich double genommen habe. Dann funktioniert aber die Switchanweisung nicht mehr. Kann mir da jemand bei helfen?

Code:

string Eingabe;

int Auswahl;

Console.WriteLine("Bitte treffen Sie Ihre Auswahl ");

Eingabe = Console.ReadLine();

Auswahl = Convert.ToInt32(Eingabe);

if (Auswahl % 2 == 0|| Auswahl % 2==1)

switch (Auswahl)

{

case 1: Console.WriteLine("Präfixinkrementoperation");

break;

case 2: Console.WriteLine("Postfixinkrementoperation");

break;

case 3: Console.WriteLine("Präfixdekrementoperation");

break;

case 4: Console.WriteLine("Postfixdekrementoperation");

break;

case 5: Console.WriteLine("Ende");

break;

}

else

{

Console.WriteLine("Bitte geben Sie eine gültige Eingabe ein!");

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das kannst du einfach mit TryParse machen:


string str = Console.ReadLine();
int i;
if (Int32.TryParse(str, out i))
Console.WriteLine("Zahl: {0}", i);
else
Console.WriteLine("KeinZahl!");
[/PHP]

Ansonsten müsstest du halt bei Convert.ToInt32 die Exception abfangen und entsprechend reagieren, aber so ists viel einfacher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

#

Hallo,

ich habe eine Frage.

Dieses Prorämmchen läuft soweit.

Eine Auswahl wird getroffen. Wird die falsche Zahl eingegeben,

wiederholt sich die Main Methode.

Jetzt meine Frage, wie kann ich dabei darauf eingehen, dass z.B. keine Kommazahlen eingegeben werden dürfen bzw, dass das Programm dann nicht abbricht.

Kann mir jemand den kleinen Teil in meinem kleinen Progrämmchen bitte ergänzen?? Das wäre super.

static void Main()

{

Console.WriteLine("Bitte treffen Sie Ihre Auswahl: ");

string Eingabe=Console.ReadLine();

int Auswahl = Convert.ToInt32(Eingabe);

switch (Auswahl)

{

case 1: Console.WriteLine("Nr.1");

break;

case 2: Console.WriteLine("Nr.2");

break;

case 3: Console.WriteLine("Nr.3");

break;

case 4: Console.WriteLine("Nr.4");

break;

case 5: Console.WriteLine("Nr.5");

break;

default: Console.Clear(); Main() break;

}

}

LG, Azubine

Link zu diesem Kommentar
Auf anderen Seiten teilen

Trotzdem danke an alle. Auch wenn ich schon längst kapiert habe, dass ich dafür TryParse() nehmen soll. Finde dazu nur keine vernünftigem Beispiele im Netz und weiß daher nicht, wie ich es anwenden soll. Das PHP Beispiel ist gut nur lässt sich das bei mir nicht umsetzen trotz Abänderung.

Ich bin mir sicher, dass es 99% von euch reicht zu wissen welche Methode man braucht. Aber es gibt wirklich blutige Anfänger denen das alleine ohne Syntax und ohne Zusammenhang einfach nichts sagt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das oben war kein PHP Beispiel, das ist nur die Formatierung des Formungs für Quellcode.

Laut MSDN ;) gibt TryParse true zurück wenn es den Wert umwandeln konnte und false wenn nicht. Daraus ergibt sich dann einfach:


static void Main(string[] args)
{
Console.WriteLine("Bitte treffen Sie Ihre Auswahl: ");
string Eingabe=Console.ReadLine();
int Auswahl;

if (int.TryParse(Eingabe, out Auswahl))
{
switch (Auswahl)
{
case 1: Console.WriteLine("Nr.1");
break;
case 2: Console.WriteLine("Nr.2");
break;
case 3: Console.WriteLine("Nr.3");
break;
case 4: Console.WriteLine("Nr.4");
break;
case 5: Console.WriteLine("Nr.5");
break;
default: Console.Clear(); break;
}
}
else
Console.WriteLine("Keine Zahl eingegeben!");
}
[/PHP]

Das was du im default Teil der switch Anweisung mit dem Main() Aufruf versucht hast solltest du übrigensin jedem Fall vergessen weil du damit eine Rekursion erzeugst.

Wenn du die Eingabe so lange wiederholen willst bis eine Zahl eingegeben wurde musst du eine Schleife um den Teil setzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...