Exercițiul - finalizați o activitate de provocare pentru a diferenția între instrucțiuni de lucru și iterație
Provocările legate de cod vor consolida ceea ce ați învățat și vă vor ajuta să obțineți încredere înainte de a continua.
Examinați diferența dintre do și iterații în timp ce declarația iterații
După cum ați văzut, C# acceptă patru tipuri de instrucțiuni de iterație: for, foreach, do-while, și while. Documentația de referință lingvistică Microsoft descrie aceste instrucțiuni după cum urmează:
- Instrucțiunea
for: execută corpul său în timp ce o expresie booleană specificată (condiția") se evaluează ca adevărată. - Instrucțiunea
foreach: enumeră elementele unei colecții și își execută corpul pentru fiecare element al colecției. - Instrucțiunea
do-while: condițional își execută corpul de una sau mai multe ori. - Instrucțiunea
while: condițional execută corpul său zero sau de mai multe ori.
Și forforeach iterații par să fie clar diferențiate unul de celălalt și de do-while iterații și while . Cu toate acestea, definițiile pentru do-while instrucțiuni și while par să fie destul de asemănătoare. Știind când să aleg între un do-while și un while pare mai arbitrar, și poate fi chiar un pic derutant. Unele proiecte de provocare pot ajuta la clarificarea diferențelor.
În această provocare, vi se vor prezenta condiții pentru trei proiecte separate de codificare. Fiecare proiect vă va solicita să implementați un bloc de cod de iterație utilizând fie o do-while instrucțiune, fie o while instrucțiune. Va trebui să evaluați condițiile specificate pentru a alege între do-while instrucțiuni și while . Puteți comuta după ce începeți dacă prima alegere nu funcționează la fel de bine ca și ați sperat.
Notă
Condițiile pentru proiectul de codare pot fi utilizate pentru a vă ajuta să selectați între do-while instrucțiuni și while . Ce știți sau ce nu știți despre expresia booleană care va fi evaluată vă poate ajuta uneori să selectați între do-while instrucțiuni și while . În acest exercițiu de provocare, condițiile proiectului includ informații care vor fi utilizate pentru a construi expresia booleană.
Gestionați intrările de utilizator în timpul acestei provocări
Atunci când utilizați o Console.ReadLine() instrucțiune pentru a obține intrări de utilizator, este o practică obișnuită să utilizați un șir de tip nul (desemnat string?) pentru variabila de intrare, apoi să evaluați valoarea introdusă de utilizator. Următorul exemplu de cod utilizează un șir de tip nul pentru a captura intrările utilizatorului. Iterația continuă în timp ce valoarea furnizată de utilizator este nulă:
string? readResult;
Console.WriteLine("Enter a string:");
do
{
readResult = Console.ReadLine();
} while (readResult == null);
Expresia booleană evaluată de while instrucțiunea poate fi utilizată pentru a se asigura că intrarea utilizatorului îndeplinește o cerință specificată. De exemplu, dacă o solicitare îi solicită utilizatorului să introducă un șir care include cel puțin trei caractere, se poate utiliza următorul cod:
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);
Dacă doriți să utilizați Console.ReadLine() introducerea pentru valori numerice, trebuie să efectuați conversia valorii șirului într-un tip numeric.
Metoda int.TryParse() poate fi utilizată pentru a efectua conversia unei valori șir într-un număr întreg. Metoda utilizează doi parametri, un șir care va fi evaluat și numele unei variabile întregi care va fi atribuită unei valori. Metoda returnează o valoare booleană. Următorul exemplu de cod demonstrează utilizarea metodei int.TryParse() :
// capture user input in a string variable named readResult
int numericValue = 0;
bool validNumber = false;
validNumber = int.TryParse(readResult, out numericValue);
Dacă valoarea șir atribuită readResult reprezintă un număr întreg valid, valoarea va fi atribuită variabilei întregi denumite numericValueși true va fi atribuită variabilei Boolean denumite validNumber. Dacă valoarea atribuită readResult nu reprezintă un număr întreg valid, validNumber i se va atribui o valoare de false. De exemplu, dacă readResult este egal cu "7", valoarea 7 va fi atribuită lui numericValue.
Proiectul de cod 1 - cod de scriere care validează intrările întregi
Iată condițiile pe care trebuie să le implementeze primul dvs. proiect de codare:
Soluția trebuie să includă o
do-whilesoluție sauwhileiterație.Înainte de blocarea iterației: soluția trebuie să utilizeze o
Console.WriteLine()instrucțiune pentru a solicita utilizatorului o valoare întreagă între 5 și 10.În interiorul blocului de iterație:
- Soluția trebuie să utilizeze o
Console.ReadLine()instrucțiune pentru a obține date de la utilizator. - Soluția trebuie să se asigure că intrarea este o reprezentare validă a unui întreg.
- Dacă valoarea întreagă nu este între 5 și 10, codul trebuie să utilizeze o
Console.WriteLine()instrucțiune pentru a solicita utilizatorului o valoare întreagă între 5 și 10. - Soluția trebuie să se asigure că valoarea întreagă este între 5 și 10 înainte de a ieși din iterație.
- Soluția trebuie să utilizeze o
Mai jos (după) blocul codului de iterație: soluția trebuie să utilizeze o
Console.WriteLine()instrucțiune pentru a informa utilizatorul că valoarea de intrare a fost acceptată.
Asigurați-vă că aveți un fișier Program.cs gol deschis în Visual Studio Code.
Dacă este necesar, deschideți Visual Studio Code, apoi parcurgeți pașii următori pentru a pregăti un fișier Program.cs în Editor:
În meniul Fișier , selectați Deschidere folder.
Utilizați caseta de dialog Deschidere folder pentru a naviga la, apoi deschideți folderul CsharpProjects .
În panoul Visual Studio Code EXPLORER, selectați Program.cs.
În meniul Selectare cod Visual Studio, selectați Selectare totală, apoi apăsați tasta Delete.
Scrieți codul care implementează fiecare condiție pentru proiectul de cod 1.
Rulați aplicația și verificați dacă codul validează intrările de utilizator pe baza cerințelor specificate.
De exemplu, atunci când rulați aplicația, ar trebui să respingă valorile de intrare, cum ar fi "doi" și "2", dar ar trebui să accepte o valoare de intrare "7".
Exemplul descris mai sus, ieșirea consolei ar trebui să arate similar cu următoarea:
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.
Cod proiect 2 - cod de scriere care validează intrarea șirului
Iată condițiile pe care trebuie să le implementeze al doilea proiect de codificare:
Soluția trebuie să includă o
do-whilesoluție sauwhileiterație.Înainte de blocarea iterației: soluția trebuie să utilizeze o
Console.WriteLine()instrucțiune pentru a solicita utilizatorului unul dintre cele trei nume de roluri: Administrator, Manager sau Utilizator.În interiorul blocului de iterație:
- Soluția trebuie să utilizeze o
Console.ReadLine()instrucțiune pentru a obține date de la utilizator. - Soluția trebuie să se asigure că valoarea introdusă corespunde uneia dintre cele trei opțiuni de rol.
- Soluția
Trim()ar trebui să utilizeze metoda pentru valoarea de intrare pentru a ignora caracterele spațiu la început și la final. - Soluția
ToLower()dvs. ar trebui să utilizeze metoda pentru valoarea de intrare pentru a ignora literele mari și mici. - Dacă valoarea introdusă nu este o potrivire pentru una dintre opțiunile de rol, codul trebuie să utilizeze o
Console.WriteLine()instrucțiune pentru a solicita utilizatorului o intrare validă.
- Soluția trebuie să utilizeze o
Mai jos (după) blocul codului de iterație: Soluția trebuie să utilizeze o
Console.WriteLine()instrucțiune pentru a informa utilizatorul că valoarea de intrare a fost acceptată.
Comentați tot codul din panoul Visual Studio Code Editor
- Selectați toate liniile de cod din editorul de cod
- În meniul Editare , selectați Comutare comentariu bloc.
Scrieți codul care implementează fiecare condiție pentru proiectul de cod 2.
Rulați aplicația și verificați dacă codul validează intrările de utilizator pe baza cerințelor specificate.
De exemplu, atunci când rulați aplicația, ar trebui să respingă o valoare de intrare, cum ar fi "Administrator", dar ar trebui să accepte o valoare de intrare "administrator".
Ieșirea consolei pentru acest exemplu ar trebui să arate similar cu următoarea:
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.
Proiect de cod 3 - Cod de scriere care procesează conținutul unei matrice de șiruri
Iată condițiile pe care trebuie să le implementeze al treilea proiect de codificare:
soluția trebuie să utilizeze următoarea matrice de șiruri pentru a reprezenta intrarea în logica de codificare:
string[] myStrings = new string[2] { "I like pizza. I like roast chicken. I like salad", "I like all three of the menu choices" };Soluția trebuie să declare o variabilă întreagă denumită
periodLocationcare poate fi utilizată pentru a reține locația caracterului punctului dintr-un șir.Soluția trebuie să includă o buclă exterioară
foreachsauforo buclă care poate fi utilizată pentru a procesa fiecare element șir din matrice. Variabila șir pe care o veți procesa în bucle ar trebui să fie denumitămyString.În bucla exterioară, soluția trebuie să utilizeze
IndexOf()metodaStringclasei pentru a obține locația primului caracter de punct dinmyStringvariabilă. Apelul metodei ar trebui să fie similar cu:myString.IndexOf("."). Dacă nu există niciun caracter punct în șir, se va returna o valoare de -1.Soluția trebuie să includă o buclă internă
do-whilesauwhileinternă care poate fi utilizată pentru a procesa variabilamyString.În bucla internă, soluția trebuie să extragă și să afișeze (să scrie pe consolă) fiecare propoziție conținută în fiecare dintre șirurile care sunt procesate.
În bucla internă, soluția nu trebuie să afișeze caracterul punct.
În bucla interioară, soluția trebuie să utilizeze
Remove(),Substring()șiTrimStart()metodele pentru a procesa informațiile șirului.
Comentați tot codul din panoul Visual Studio Code Editor
- Selectați toate liniile de cod din editorul de cod
- În meniul Editare , selectați Comutare comentariu bloc.
Scrieți codul care implementează fiecare condiție listată pentru proiectul de cod 3.
Rulați aplicația și verificați dacă ieșirea dvs. îndeplinește cerințele.
Dacă logica de cod funcționează corect, rezultatul ar trebui să arate asemănător cu următoarele:
I like pizza I like roast chicken I like salad I like all three of the menu choices
Indiferent dacă vă blocați și trebuie să examinați soluția sau terminați cu succes, continuați să vizualizați proiectele soluției pentru această provocare.