Alıştırma - Do ve while yineleme deyimleri arasında ayrım yapmak için sınama etkinliğini tamamlama

Tamamlandı

Kod zorlukları öğrendiklerini pekiştirecek ve devam etmeden önce biraz güven kazanmanıza yardımcı olacaktır.

Do ve while deyimi yinelemeleri arasındaki farkı inceleyin

Gördüğünüz gibi C# dört tür yineleme deyimini destekler: for, foreach, do-whileve while. Microsoft'un dil başvurusu belgelerinde bu deyimler şu şekilde açıklanmaktadır:

  • deyimi for : belirtilen Boole ifadesi ('koşul') true olarak değerlendirilirken gövdesini yürütür.
  • deyimi foreach : bir koleksiyonun öğelerini numaralandırır ve koleksiyonunun her öğesi için gövdesini yürütür.
  • deyimi do-while : Gövdesini bir veya daha fazla kez koşullu olarak yürütür.
  • deyimi while : gövdesini koşullu olarak sıfır veya daha fazla kez yürütür.

for ve foreach yinelemeleri birbirinden ve ve do-while yinelemelerinden while açıkça ayırt edilmiş gibi görünüyor. Ancak ve do-while deyimlerinin tanımları while oldukça benzer görünüyor. ile arasında do-whilewhile ne zaman seçim yapmak gerektiğini bilmek daha rastgele görünür ve hatta biraz kafa karıştırıcı olabilir. Bazı sınama projeleri farkları net hale getirmede yardımcı olabilir.

Bu sınamada size üç ayrı kodlama projesi için koşullar sunulacaktır. Her proje, bir veya do-while deyimi kullanarak while bir yineleme kodu bloğu uygulamanızı gerektirir. ve do-while deyimleri arasında while seçim yapmak için belirtilen koşulları değerlendirmeniz gerekir. İlk seçiminiz umduğunuz gibi çalışmıyorsa, başladıktan sonra geçiş yapabilirsiniz.

Not

Kodlama projenizin koşulları, ve do-while deyimleri arasında while seçim yapmaya yardımcı olmak için kullanılabilir. Değerlendirilecek Boole ifadesi hakkında bildikleriniz veya bilmediğiniz şeyler bazen ve do-while deyimleri arasında while seçim yapmanıza yardımcı olabilir. Bu sınama alıştırmasında, proje koşulları Boole ifadesini oluşturmak için kullanılacak bilgileri içerir.

Bu sınama sırasında kullanıcı girişini yönetme

Kullanıcı girişini almak için bir Console.ReadLine() deyim kullanırken, giriş değişkeni için null atanabilir bir tür dizesi (belirlenmiş string?) kullanmak ve sonra kullanıcı tarafından girilen değeri değerlendirmek yaygın bir uygulamadır. Aşağıdaki kod örneği, kullanıcı girişini yakalamak için null atanabilir bir tür dizesi kullanır. Kullanıcı tarafından sağlanan değer null olduğunda yineleme devam eder:

string? readResult;
Console.WriteLine("Enter a string:");
do
{
    readResult = Console.ReadLine();
} while (readResult == null);

deyimi tarafından değerlendirilen Boole ifadesi, kullanıcı girişinin while belirtilen gereksinimi karşıladığından emin olmak için kullanılabilir. Örneğin, kullanıcıdan en az üç karakter içeren bir dize girmesini isteyen bir komut isteminde aşağıdaki kod kullanılabilir:

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

Sayısal değerler için giriş kullanmak Console.ReadLine() istiyorsanız, dize değerini sayısal bir türe dönüştürmeniz gerekir.

yöntemi, int.TryParse() bir dize değerini tamsayıya dönüştürmek için kullanılabilir. yöntemi, değerlendirilecek bir dize ve bir değer atanacak bir tamsayı değişkeninin adı olmak üzere iki parametre kullanır. yöntemi bir Boole değeri döndürür. Aşağıdaki kod örneği yönteminin int.TryParse() kullanılmasını gösterir:

// capture user input in a string variable named readResult

int numericValue = 0;
bool validNumber = false;

validNumber = int.TryParse(readResult, out numericValue);

atanan readResult dize değeri geçerli bir tamsayıyı temsil ederse, değer adlı numericValuetamsayı değişkenine atanır ve true adlı validNumberBoole değişkenine atanır. atanan readResult değer geçerli bir tamsayıyı temsil etmiyorsa, validNumber değerine falseatanır. Örneğin, "7" değerine eşitse readResult , değer 7 öğesine numericValueatanır.

Kod projesi 1 - tamsayı girişini doğrulayan kod yazma

İlk kodlama projenizin uygulaması gereken koşullar şunlardır:

  • Çözümünüz bir do-while veya while yineleme içermelidir.

  • Yineleme bloğundan önce: çözümünüz kullanıcıdan 5 ile 10 arasında bir tamsayı değeri istemesi için bir deyim kullanmalıdır Console.WriteLine() .

  • Yineleme bloğunun içinde:

    • Çözümünüz kullanıcıdan giriş almak için bir Console.ReadLine() deyimi kullanmalıdır.
    • Çözümünüz girişin bir tamsayının geçerli bir gösterimi olduğundan emin olmalıdır.
    • Tamsayı değeri 5 ile 10 arasında değilse, kodunuzun kullanıcıdan 5 ile 10 arasında bir tamsayı değeri istemesi için bir deyimi kullanması Console.WriteLine() gerekir.
    • Çözümünüz yinelemeden çıkmadan önce tamsayı değerinin 5 ile 10 arasında olduğundan emin olmalıdır.
  • Yineleme kodu bloğunun altında (sonra): çözümünüz kullanıcıya giriş değerinin kabul edildiğini bildirmek için bir Console.WriteLine() deyimi kullanmalıdır.

  1. Visual Studio Code'da boş bir Program.cs dosya açtığınızdan emin olun.

    Gerekirse Visual Studio Code'ı açın ve düzenleyicide bir Program.cs dosyası hazırlamak için aşağıdaki adımları tamamlayın:

    1. Dosya menüsünde Klasörü Aç'ı seçin.

    2. CsharpProjects klasörüne gitmek ve açmak için Klasör Aç iletişim kutusunu kullanın.

    3. Visual Studio Code EXPLORER panelinde Program.cs'ı seçin.

    4. Visual Studio Code Seçimi menüsünde Tümünü Seç'i seçin ve delete tuşuna basın.

  2. 1. kod projesi için her koşulu uygulayan kodu yazın.

  3. Uygulamanızı çalıştırın ve kodunuzun belirtilen gereksinimlere göre kullanıcı girişini doğrulayıp doğrulamadığını doğrulayın.

    Örneğin, uygulamanızı çalıştırdığınızda "iki" ve "2" gibi giriş değerlerini reddetmeli, ancak "7" giriş değerini kabul etmelidir.

    Yukarıda açıklanan örnekte konsol çıkışı aşağıdakine benzer olmalıdır:

    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.
    

Kod projesi 2 - dize girişini doğrulayan kod yazma

İkinci kodlama projenizin uygulaması gereken koşullar şunlardır:

  • Çözümünüz bir do-while veya while yineleme içermelidir.

  • Yineleme bloğundan önce: çözümünüz kullanıcıdan üç rol adı istemesi için bir Console.WriteLine() deyim kullanmalıdır: Yönetici, Yönetici veya Kullanıcı.

  • Yineleme bloğunun içinde:

    • Çözümünüz kullanıcıdan giriş almak için bir Console.ReadLine() deyimi kullanmalıdır.
    • Çözümünüz, girilen değerin üç rol seçeneğinden biriyle eşleştiğinden emin olmalıdır.
    • Çözümünüz, baştaki Trim() ve sondaki boşluk karakterlerini yoksaymak için giriş değerinde yöntemini kullanmalıdır.
    • Çözümünüz büyük/küçük harf kullanımını yoksaymak için giriş değerinde yöntemini kullanmalıdır ToLower() .
    • Girilen değer rol seçeneklerinden biriyle eşleşmiyorsa, kodunuzun kullanıcıdan geçerli bir giriş istemesi için bir Console.WriteLine() deyimi kullanması gerekir.
  • Yineleme kodu bloğunun altında (sonra): Çözümünüz, kullanıcıya giriş değerinin kabul edildiğini bildirmek için bir Console.WriteLine() deyimi kullanmalıdır.

  1. Visual Studio Code Düzenleyicisi panelindeki tüm kodu açıklama satırı

    1. Kod düzenleyicisindeki tüm kod satırlarını seçin
    2. Düzenle menüsünde Açıklamayı Engelle'yi seçin.
  2. Kod projesi 2 için her koşulu uygulayan kodu yazın.

  3. Uygulamanızı çalıştırın ve kodunuzun belirtilen gereksinimlere göre kullanıcı girişini doğrulayıp doğrulamadığını doğrulayın.

    Örneğin, uygulamanızı çalıştırdığınızda "Yönetici" gibi bir giriş değerini reddetmeli, ancak " yönetici " giriş değerini kabul etmelidir.

    Bu örneğin konsol çıkışı aşağıdakine benzer olmalıdır:

    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.
    

Kod projesi 3 - Bir dize dizisinin içeriğini işleyen kod yazma

Üçüncü kodlama projenizin uygulaması gereken koşullar şunlardır:

  • çözümünüz, kodlama mantığınızın girişini göstermek için aşağıdaki dize dizisini kullanmalıdır:

    string[] myStrings = new string[2] { "I like pizza. I like roast chicken. I like salad", "I like all three of the menu choices" };
    
  • Çözümünüz, bir dize içindeki nokta karakterinin konumunu tutmak için kullanılabilecek adlı periodLocation bir tamsayı değişkeni bildirmelidir.

  • Çözümünüz, dizideki her dize öğesini işlemek için kullanılabilecek bir dış foreach veya for döngü içermelidir. Döngülerin içinde işlenecek dize değişkeni olarak adlandırılmalıdır myString.

  • Dış döngüde, çözümünüz değişkendeki IndexOf() ilk dönem karakterinin String konumunu almak için sınıfının yöntemini myString kullanmalıdır. Yöntem çağrısı şuna benzer olmalıdır: myString.IndexOf("."). Dizede nokta karakteri yoksa, -1 değeri döndürülür.

  • Çözümünüz, değişkeni işlemek do-while için kullanılabilecek bir iç while veya myString döngü içermelidir.

  • İç döngüde, çözümünüzün işlenen dizelerin her birinde yer alan her tümceyi ayıklaması ve görüntülemesi (konsola yazması) gerekir.

  • İç döngüde çözümünüz nokta karakterini görüntülememelidir.

  • İç döngüde, çözümünüz dize bilgilerini işlemek için , Remove()ve Substring() yöntemlerini kullanmalıdırTrimStart().

  1. Visual Studio Code Düzenleyicisi panelindeki tüm kodu açıklama satırı

    1. Kod düzenleyicisindeki tüm kod satırlarını seçin
    2. Düzenle menüsünde Açıklamayı Engelle'yi seçin.
  2. Kod projesi 3 için listelenen her koşulu uygulayan kodu yazın.

  3. Uygulamanızı çalıştırın ve çıkışınızın gereksinimleri karşıladığını doğrulayın.

    Kod mantığınız düzgün çalışıyorsa çıkışınız aşağıdakine benzer olmalıdır:

    I like pizza
    I like roast chicken
    I like salad
    I like all three of the menu choices
    

İster takılıp çözüme göz atmanız gereksin, ister başarıyla bitirin, bu sınamanın çözüm projelerini görüntülemeye devam edin.