Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!");

}

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.

Tur mir leid, keine Ahnung wie ich das konkret umsetzen soll.

Aber danke.

mit try und catch

try

{

probieren zu wandeln;

}

catch(Exception e)

{

z.B. Messagebox ausgeben mit "Huhu du da! ein fehler ist aufgetreten;

}

Tur mir leid, keine Ahnung wie ich das konkret umsetzen soll.

Aber danke.

Wo liegt denn genau dein Problem?

Wert.TryParse-Syntax?

Mit freundlichen Grüßen,

Cadpax

#

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

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.

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.

Oh, tausend Dank. verstehe es.

Hatte deinen ersten Code zwar versucht, aber anscheinend falsch. Daher dachte ich es sei php. Auch wenn mir grundsätzlich nach C# aussah.

Danke Schön :-)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.