Übung: Aufgabe zum Unterschied zwischen do- und while-Iterationsanweisungen
Die Programmieraufgaben helfen Ihnen dabei, das Gelernte zu vertiefen und praktisch umzusetzen, bevor Sie fortfahren.
Untersuchen des Unterschieds zwischen do- und while-Anweisungsiterationen
Wie Sie gesehen haben, unterstützt C# vier Typen von Iterationsanweisungen: for, foreach, do-while und while. In der Sprachreferenzdokumentation von Microsoft werden diese Anweisungen wie folgt beschrieben:
- Die
for-Anweisung wird ausgeführt, wenn ein angegebener boolescher Ausdruck (die „Bedingung“) zu TRUE ausgewertet wird. - Die
foreach-Anweisung listet die Elemente einer Sammlung auf und wird für jedes Element der Sammlung ausgeführt. - Die
do-while-Anweisung wird unter bestimmten Bedingungen einmal oder mehrmals ausgeführt. - Die
while-Anweisung wird unter bestimmten Bedingungen nicht oder mehrmals ausgeführt.
Die for- und foreach-Iteration scheint sich deutlich voneinander und von der do-while- und while-Iteration zu unterscheiden. Die Definitionen für die do-while- und while-Anweisung scheinen jedoch recht ähnlich zu sein. Zu wissen, wann do-while und wann while empfohlen wird, scheint willkürlich und kann sogar etwas verwirrend sein. Einige Projekte innerhalb der Aufgaben können helfen, die Unterschiede deutlich zu machen.
In dieser Aufgabe erhalten Sie Bedingungen für drei separate Codierungsprojekte. Für jedes Projekt müssen Sie einen Iterationscodeblock mithilfe einer do-while- oder while-Anweisung implementieren. Sie müssen die angegebenen Bedingungen auswerten, um zwischen der do-while- und while-Anweisung zu wählen. Sie können nach dem Start wechseln, wenn Ihre erste Wahl nicht so funktioniert wie erhofft.
Hinweis
Die Bedingungen für Ihr Programmierprojekt können verwendet werden, um Sie bei der Auswahl zwischen der do-while- und while-Anweisung zu unterstützen. Was Sie über den auszuwertenden booleschen Ausdruck wissen, kann Ihnen helfen, zwischen der do-while- und while-Anweisung auszuwählen. In dieser Übung enthalten die Projektbedingungen Informationen, die zum Erstellen des booleschen Ausdrucks verwendet werden.
Verwalten der Benutzereingabe bei diesem Captcha
Wenn Sie eine Console.ReadLine()-Anweisung zum Abrufen der Benutzereingabe verwenden, ist es üblich, für die Eingabevariable eine Zeichenfolge mit dem Nullable-Typ (festgelegt durch string?) zu verwenden und dann den vom Benutzer eingegebenen Wert auszuwerten. Das folgende Codebeispiel verwendet eine Zeichenfolge des Nullable-Typs, um Benutzereingaben zu erfassen. Die Iteration wird fortgesetzt, wenn der vom Benutzer bereitgestellte Wert NULL ist:
string? readResult;
Console.WriteLine("Enter a string:");
do
{
readResult = Console.ReadLine();
} while (readResult == null);
Der boolesche Ausdruck, der von der while-Anweisung ausgewertet wird, kann verwendet werden, um sicherzustellen, dass die Benutzereingaben eine angegebene Anforderung erfüllen. Wenn Benutzer*innen beispielsweise aufgefordert werden, eine Zeichenfolge mit mindestens drei Zeichen einzugeben, kann der folgende Code verwendet werden:
string? readResult;
bool validEntry = false;
Console.WriteLine("Enter a string containing at least three characters:");
do
{
readResult = Console.ReadLine();
if (readResult != null)
{
if (readResult.Length >= 3)
{
validEntry = true;
}
else
{
Console.WriteLine("Your input is invalid, please try again.");
}
}
} while (validEntry == false);
Wenn Sie eine Console.ReadLine()-Eingabe für numerische Werte verwenden möchten, müssen Sie den Zeichenfolgenwert in einen numerischen Typ konvertieren.
Mit der int.TryParse()-Methode kann ein Zeichenfolgenwert in eine ganze Zahl konvertiert werden. Die Methode verwendet zwei Parameter: eine Zeichenfolge, die ausgewertet wird, und den Namen einer ganzzahligen Variablen, der ein Wert zugewiesen wird. Die Methode gibt einen booleschen Wert zurück. Das folgende Codebeispiel veranschaulicht die Verwendung der int.TryParse()-Methode:
// capture user input in a string variable named readResult
int numericValue = 0;
bool validNumber = false;
validNumber = int.TryParse(readResult, out numericValue);
Wenn der readResult zugewiesene Zeichenfolgenwert eine gültige ganze Zahl ist, wird der Wert der ganzzahligen Variablen namens numericValue zugewiesen und true wird der booleschen Variablen mit dem Namen validNumber zugewiesen. Wenn der readResult zugewiesene Wert keine gültige ganze Zahl ist, wird validNumber der Wert false zugewiesen. Wenn readResult beispielsweise gleich 7 ist, wird 7 der Wert numericValue zugewiesen.
Codeprojekt 1: Schreiben von Code, der ganzzahlige Eingaben überprüft
Dies sind die Bedingungen, die Ihr erstes Programmierprojekt erfüllen muss:
Ihre Lösung muss entweder eine
do-while- oderwhile-Iteration enthalten.Vor dem Iterationsblock: Ihre Lösung muss eine
Console.WriteLine()-Anweisung verwenden, um Benutzer*innen zur Eingabe eines ganzzahligen Werts zwischen 5 und 10 aufzufordern.Innerhalb des Iterationsblocks:
- Ihre Lösung muss eine
Console.ReadLine()-Anweisung verwenden, um Eingaben von Benutzer*innen zu erhalten. - Ihre Lösung muss prüfen, ob die Eingabe eine gültige Darstellung einer ganzen Zahl ist.
- Wenn der ganzzahlige Wert nicht zwischen 5 und 10 liegt, muss Ihr Code den Benutzer mithilfe einer
Console.WriteLine()-Anweisung auffordern, einen ganzzahligen Wert zwischen 5 und 10 einzugeben. - In der Lösung muss sichergestellt werden, dass der ganzzahlige Wert zwischen 5 und 10 liegt, bevor die Iteration beendet wird.
- Ihre Lösung muss eine
Unter (nach) dem Iterationscodeblock: Ihre Lösung muss Benutzer*innen mithilfe einer
Console.WriteLine()-Anweisung darüber informieren, dass ihr Eingabewert akzeptiert wurde.
Stellen Sie sicher, dass eine leere „Program.cs“-Datei in Visual Studio Code geöffnet ist.
Öffnen Sie bei Bedarf Visual Studio Code, und führen Sie dann die folgenden Schritte aus, um eine „Program.cs“-Datei im Editor vorzubereiten:
Klicken Sie im Menü Datei auf Ordner öffnen.
Verwenden Sie das Dialogfeld „Ordner öffnen“, um zum Ordner CsharpProjects zu navigieren und diesen dann zu öffnen.
Wählen Sie im EXPLORER-Bereich von Visual Studio Code die Datei Program.cs aus.
Wählen Sie im Visual Studio Code-Menü Auswahl die Option Alle auswählen aus, und drücken Sie dann die ENTF-Taste.
Schreiben Sie den Code, der die einzelnen Bedingungen für Codeprojekt 1 implementiert.
Führen Sie Ihre Anwendung aus, und überprüfen Sie, ob Ihr Code die Benutzereingabe wie vorgesehen überprüft.
Wenn Sie beispielsweise Ihre Anwendung ausführen, sollte sie Eingabewerte wie „zwei“ und „2“ ablehnen, aber den Eingabewert „7“ akzeptieren.
Für das oben beschriebene Beispiel sollte die Konsolenausgabe wie folgt aussehen:
Enter an integer value between 5 and 10 two Sorry, you entered an invalid number, please try again 2 You entered 2. Please enter a number between 5 and 10. 7 Your input value (7) has been accepted.
Codeprojekt 2: Schreiben von Code, der Zeichenfolgeeingaben überprüft
Dies sind die Bedingungen, die Ihr zweites Programmierungsprojekt erfüllen muss:
Ihre Lösung muss entweder eine
do-while- oderwhile-Iteration enthalten.Vor dem Iterationsblock: Ihre Lösung muss Benutzer*innen mithilfe einer
Console.WriteLine()-Anweisung zur Eingabe eines von drei Rollennamen auffordern: Administrator, Manager oder Benutzer.Innerhalb des Iterationsblocks:
- Ihre Lösung muss eine
Console.ReadLine()-Anweisung verwenden, um Eingaben von Benutzer*innen zu erhalten. - Ihre Lösung muss sicherstellen, dass der eingegebene Wert einer der drei Rollenoptionen entspricht.
- Ihre Lösung sollte die
Trim()-Methode für den Eingabewert verwenden, um führende und nachstehende Leerzeichen zu ignorieren. - Ihre Lösung sollte die
ToLower()-Methode für den Eingabewert verwenden, um die Groß- und Kleinschreibung zu ignorieren. - Wenn der eingegebene Wert mit keiner der Rollenoptionen übereinstimmt, muss im Code eine
Console.WriteLine()-Anweisung verwendet werden, mit der Benutzer zur Eingabe eines gültigen Werts aufgefordert werden.
- Ihre Lösung muss eine
Unter (nach) dem Iterationscodeblock: Ihre Lösung muss Benutzer*innen mithilfe einer
Console.WriteLine()-Anweisung darüber informieren, dass ihr Eingabewert akzeptiert wurde.
Auskommentieren des gesamten Codes im Visual Studio Code-Editor-Bereich
- Auswählen aller Codezeilen im Code-Editor
- Wählen Sie im Menü Bearbeiten die Option Blockkommentar umschalten aus.
Schreiben Sie den Code, der die einzelnen Bedingungen für Codeprojekt 2 implementiert.
Führen Sie Ihre Anwendung aus, und überprüfen Sie, ob Ihr Code die Benutzereingabe wie vorgesehen überprüft.
Wenn Sie Ihre Anwendung ausführen, sollte sie beispielsweise Eingabewerte wie „Admin“ ablehnen, aber den Eingabewert „Administrator“ akzeptieren.
Die Konsolenausgabe für dieses Beispiel sollte wie folgt aussehen:
Enter your role name (Administrator, Manager, or User) Admin The role name that you entered, "Admin" is not valid. Enter your role name (Administrator, Manager, or User) Administrator Your input value (Administrator) has been accepted.
Codeprojekt 3: Schreiben von Code, der den Inhalt eines Zeichenfolgenarrays verarbeitet
Dies sind die Bedingungen, die in Ihrem dritten Programmierprojekt erfüllt werden müssen:
Ihre Lösung muss das folgende Zeichenfolgenarray für die Eingabe verwenden:
string[] myStrings = new string[2] { "I like pizza. I like roast chicken. I like salad", "I like all three of the menu choices" };Ihre Lösung muss eine ganzzahlige Variable mit dem Namen
periodLocationdeklarieren, mit der die Position des Punkts in einer Zeichenfolge angegeben werden kann.Ihre Lösung muss eine äußere
foreach- oderfor-Schleife enthalten, die zum Verarbeiten jedes Zeichenfolgenelements im Array verwendet werden kann. Die Zeichenfolgenvariable, die Sie in den Schleifen verarbeiten, sollte den NamenmyStringhaben.In der äußeren Schleife muss Ihre Lösung die
IndexOf()-Methode derString-Klasse verwenden, um die Position des ersten Punkts in dermyString-Variablen abzurufen. Der Methodenaufruf sollte wie folgt aussehen:myString.IndexOf("."). Wenn in der Zeichenfolge kein Punkt vorhanden ist, wird der Wert -1 zurückgegeben.Ihre Lösung muss eine innere
do-while- oderwhile-Schleife enthalten, die zum Verarbeiten dermyString-Variablen verwendet werden kann.In der inneren Schleife muss Ihre Lösung jeden Satz extrahieren und anzeigen (in die Konsole schreiben), der in jeder der verarbeiteten Zeichenfolgen enthalten ist.
In der inneren Schleife darf Ihre Lösung den Punkt nicht anzeigen.
In der inneren Schleife muss Ihre Lösung die
Remove()-,Substring()- undTrimStart()-Methode verwenden, um die Zeichenfolgeninformationen zu verarbeiten.
Auskommentieren des gesamten Codes im Visual Studio Code-Editor-Bereich
- Auswählen aller Codezeilen im Code-Editor
- Wählen Sie im Menü Bearbeiten die Option Blockkommentar umschalten aus.
Schreiben Sie den Code, der die einzelnen Bedingungen für Codeprojekt 3 implementiert.
Führen Sie Ihre Anwendung aus, und überprüfen Sie, ob Ihre Ausgabe die Anforderungen erfüllt.
Wenn die Codelogik ordnungsgemäß funktioniert, sollte die Ausgabe ungefähr wie folgt aussehen:
I like pizza I like roast chicken I like salad I like all three of the menu choices
Unabhängig davon, ob Sie nicht weitergekommen sind und vorab einen Blick auf die Lösung werfen mussten oder die Aufgabe gleich erfolgreich gemeistert haben: Sehen Sie sich die Lösungsprojekte zu dieser Aufgabe an.