Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
C# Case-Anwendung wie geht das?
- Ersteller mamnu
- Erstellt am
- Status
- Für weitere Antworten geschlossen.
Code:
using System;
public
{
class Program
{
public static void Main(string[] args)
{
int note =2;
//Eingabe
Console.WriteLine ("Geben Sie die Note als Zahl ein: ");
//Verarbeitung
switch (note) {
case 1:
Console.WriteLine("sehr gut");
break;
case 2:
Console.WriteLine("gut");
break;
case 3:
Console.WriteLine("befriedigend");
break;
case 4:
Console.WriteLine("ausreichend");
break;
case 5:
Console.WriteLine("mangelhaft");
break;
case 6:
Console.WriteLine("ungenügend");
break;
default:
Console.WriteLine("Note nicht erkannt.");
break;
}
//Ausgabe
Console.WriteLine ("Note als Text: ");
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
Fried.Ice
Ensign
- Registriert
- Apr. 2012
- Beiträge
- 132
Ich habs gerade mal in Sharpdevelop (Version 5.1.0; portable) getestet, da kommen auch bei mir die von dir beschriebenen Fehler zustande.
Es gibt da ein Problem mit dem Block, den du in Zeile 5 öffnest und auf der 48 wieder schließt. Entferne mal die beiden entsprechenden Zeilen.
Dann betrifft das public Keyword direkt deine Klasse:
Für die Zukunft:
Schreib doch bitte bei den Fehlern, die bei dir auftreten, die zugehörige Zeilennummer mit dazu. Das ist für uns dann deutlich besser nachzuvollziehen.
Edit: Ist ja auch kein Wunder, wenn es bei Nilson läuft: da wurde der Fehler laut Screenshot ja schon korrigiert. =)
Es gibt da ein Problem mit dem Block, den du in Zeile 5 öffnest und auf der 48 wieder schließt. Entferne mal die beiden entsprechenden Zeilen.
Dann betrifft das public Keyword direkt deine Klasse:
Code:
public class Program
{
...
...
}
Für die Zukunft:
Schreib doch bitte bei den Fehlern, die bei dir auftreten, die zugehörige Zeilennummer mit dazu. Das ist für uns dann deutlich besser nachzuvollziehen.
Edit: Ist ja auch kein Wunder, wenn es bei Nilson läuft: da wurde der Fehler laut Screenshot ja schon korrigiert. =)
Zuletzt bearbeitet:
Fried.Ice
Ensign
- Registriert
- Apr. 2012
- Beiträge
- 132
Genau, was du also brauchst, ist eine Funktion, die eine Nutzereingabe einliest und den eingelesenen Wert als Integer in deine Variable note legt.
Analog zu der von dir verwendeten Ausgabe Methode
gibt es dafür in C# ein Einlesefunktion.
Den Namen dieser Methode kannst du dir jetzt auch schon denken: Console.ReadLine().
Problem dabei: diese Methode gibt einen String (also eine Zeichenkette) zurück. Was du aber brauchst ist ein Integer (weil du deine note ja mit "int note;" ja als diesen Datentyp deklariert hast.)
Diesen musst du erst mal "parsen" - also den Datentyp umwandeln.
Das ist genau der Schritt, den dir Nilson jetzt bereits vorgegeben hat.
Da man aber zum Beispiel auch bei der Nutzereingabe beliebigen Text schreiben kann, bei welchem die Funktion dann keine Ganzzahl mehr daraus ableiten kann, kann dieser Vorgang schiefgehen.
Die TryParse Funktion gibt einen Boolen zurück (also entweder true oder false), ob die Umwandlung geklappt hat. Das kannst du gegebenenfalls abfangen mit einem if um dem Nutzer im Falle eines Fehlschlags mitzuteilen, dass seine Eingabe nicht zulässig war.
Analog zu der von dir verwendeten Ausgabe Methode
Code:
Console.WriteLine ("Geben Sie die Note als Zahl ein: ");
Den Namen dieser Methode kannst du dir jetzt auch schon denken: Console.ReadLine().
Problem dabei: diese Methode gibt einen String (also eine Zeichenkette) zurück. Was du aber brauchst ist ein Integer (weil du deine note ja mit "int note;" ja als diesen Datentyp deklariert hast.)
Diesen musst du erst mal "parsen" - also den Datentyp umwandeln.
Das ist genau der Schritt, den dir Nilson jetzt bereits vorgegeben hat.
Da man aber zum Beispiel auch bei der Nutzereingabe beliebigen Text schreiben kann, bei welchem die Funktion dann keine Ganzzahl mehr daraus ableiten kann, kann dieser Vorgang schiefgehen.
Die TryParse Funktion gibt einen Boolen zurück (also entweder true oder false), ob die Umwandlung geklappt hat. Das kannst du gegebenenfalls abfangen mit einem if um dem Nutzer im Falle eines Fehlschlags mitzuteilen, dass seine Eingabe nicht zulässig war.
Nilson schrieb:Was meinst du? Funktioniert doch.
Es sollte halt in einer Zahl sein also,
Geben Sie die Note als Zahl ein: 2
Note als Text: gut
halt so
und wie kann ich jetzt mangelhaft Note als Text: zu Note als Text: mangelhaft umändern sonst stimmt es jetzt
Danke, jetzt läuft es einwandfrei, nurnoch 4 solche Beispiele die ich lösen muss
Wie bringt man bei so einer Case-Anwendung z.b das Alter so mitrein?
Danke, jetzt läuft es einwandfrei, nurnoch 4 solche Beispiele die ich lösen muss
Ergänzung ()
Wie bringt man bei so einer Case-Anwendung z.b das Alter so mitrein?
Zuletzt bearbeitet:
Fried.Ice
Ensign
- Registriert
- Apr. 2012
- Beiträge
- 132
Ich nehme mal an das Alter ist eine Ganzzahl? In diesem fall kannst du es genau wie bisher auch auf einen Int abstrahieren.
Ob deine Variable nun "note" oder "alter" heißt, ist dem Computer relativ egal. Der bekommt beim Ausführen deines Programms gar nicht mehr mit, wie du die Variablen benannt hast, das läuft alles viel abstrakter (aber das führt jetzt zu weit).
Ob deine Variable nun "note" oder "alter" heißt, ist dem Computer relativ egal. Der bekommt beim Ausführen deines Programms gar nicht mehr mit, wie du die Variablen benannt hast, das läuft alles viel abstrakter (aber das führt jetzt zu weit).
Zuletzt bearbeitet:
- Status
- Für weitere Antworten geschlossen.
Ähnliche Themen
- Antworten
- 10
- Aufrufe
- 1.727