ตรวจสอบโซลูชันเพื่อทําเทียบกับกิจกรรมการทดสอบ

เสร็จสมบูรณ์เมื่อ

ตัวอย่างต่อไปนี้ควรใช้ do เนื่องจากคุณทราบว่าคุณจําเป็นต้องดําเนินการบล็อกโค้ดอย่างน้อยหนึ่งครั้ง คุณยังสามารถใช้ while เพื่อให้ได้ผลลัพธ์เดียวกัน นักพัฒนาบางคนรู้สึกว่าตรรกะของ ทําให้ while โค้ดอ่านง่ายขึ้น ถ้าเป็นกรณีสําหรับคุณ คุณสามารถเลือกที่จะใช้while ในกรณีนี้ โปรดทราบว่าคอมไพเลอร์โค้ดส่วนใหญ่จะปรับโค้ดของคุณให้เหมาะสมสําหรับคุณโดยการแปลงคําสั่งการทําซ้ําเป็นdo-while

รหัสโครงการ 1

โค้ดต่อไปนี้เป็นหนึ่งโซลูชันที่เป็นไปได้สําหรับการทดสอบโครงการ 1 จากหน่วยก่อนหน้า

โค้ดใช้ do คําสั่งเนื่องจากต้องดําเนินการบล็อกรหัสอย่างน้อยหนึ่งครั้ง คุณยังสามารถใช้ while เพื่อให้ได้ผลลัพธ์เดียวกัน นักพัฒนาบางคนอาจรู้สึกว่าตรรกะของ ทําให้ while โค้ดอ่านง่ายขึ้น ถ้าเป็นกรณีของคุณ คุณสามารถเลือกที่จะใช้ while คําสั่งที่นี่

string? readResult;
string valueEntered = "";
int numValue = 0;
bool validNumber = false;

Console.WriteLine("Enter an integer value between 5 and 10");

do
{
    readResult = Console.ReadLine();
    if (readResult != null) 
    {
        valueEntered = readResult;
    }

    validNumber = int.TryParse(valueEntered, out numValue);

    if (validNumber == true)
    {
        if (numValue <= 5 || numValue >= 10)
        {
            validNumber = false;
            Console.WriteLine($"You entered {numValue}. Please enter a number between 5 and 10.");
        }
    }
    else 
    {
        Console.WriteLine("Sorry, you entered an invalid number, please try again");
    }
} while (validNumber == false);

Console.WriteLine($"Your input value ({numValue}) has been accepted.");

readResult = Console.ReadLine();

รหัสโครงการ 2

โค้ดต่อไปนี้เป็นหนึ่งในโซลูชันที่เป็นไปได้สําหรับการทดสอบโครงการ 2 จากหน่วยก่อนหน้า

โค้ดใช้ do คําสั่งเนื่องจากต้องดําเนินการบล็อกรหัสอย่างน้อยหนึ่งครั้ง คุณยังสามารถใช้ while เพื่อให้ได้ผลลัพธ์เดียวกัน นักพัฒนาบางคนอาจรู้สึกว่าตรรกะของ ทําให้ while โค้ดอ่านง่ายขึ้น ถ้าเป็นกรณีของคุณ คุณสามารถเลือกที่จะใช้ while คําสั่งที่นี่

string? readResult;
string roleName = "";
bool validEntry = false;

do
{                
    Console.WriteLine("Enter your role name (Administrator, Manager, or User)");
    readResult = Console.ReadLine();
    if (readResult != null) 
    {
        roleName = readResult.Trim();
    }

    if (roleName.ToLower() == "administrator" || roleName.ToLower() == "manager" || roleName.ToLower() == "user") 
    {
        validEntry = true;
    }
    else
    {
        Console.Write($"The role name that you entered, \"{roleName}\" is not valid. ");
    }

} while (validEntry == false);

Console.WriteLine($"Your input value ({roleName}) has been accepted.");
readResult = Console.ReadLine();

รหัสโครงการ 3

โค้ดต่อไปนี้เป็นหนึ่งในโซลูชันที่เป็นไปได้สําหรับการทดสอบโครงการ 3 จากหน่วยก่อนหน้า

รหัสใช้ for คําสั่งสําหรับรอบนอกเนื่องจากคุณไม่สามารถแก้ไขค่าที่กําหนดให้กับ 'ตัวแปรการทําซ้ํา foreach' ได้ คุณสามารถแก้ปัญหานี้ได้โดยการประกาศตัวแปรสตริงพิเศษภายในการ foreach วนรอบ แต่จากนั้นคุณจะเพิ่มความซับซ้อนที่ไม่ต้องการให้กับตรรกะโค้ดของคุณ กล่าวอีกนัยหนึ่งคือการใช้คําสั่ง foreach (string myString in myStrings) การทําซ้ําและจากนั้นพยายามประมวลผล myString ตัวแปรจะสร้างข้อผิดพลาดการคอมไพล์

โค้ดใช้ while คําสั่งสําหรับการวนรอบภายในเนื่องจากอาจไม่สามารถดําเนินการบล็อกโค้ดได้ (เมื่อสตริงไม่มีจุด) ทั้งนี้ขึ้นอยู่กับค่าของสตริงข้อมูล คุณไม่ควรใช้ do คําสั่ง ในสถานการณ์ที่บล็อกการเกิดซ้ําอาจไม่จําเป็นต้องมีการดําเนินการ

string[] myStrings = new string[2] { "I like pizza. I like roast chicken. I like salad", "I like all three of the menu choices" };
int stringsCount = myStrings.Length;

string myString = "";
int periodLocation = 0;

for (int i = 0; i < stringsCount; i++)
{
    myString = myStrings[i];
    periodLocation = myString.IndexOf(".");

    string mySentence;

    // extract sentences from each string and display them one at a time
    while (periodLocation != -1)
    {

        // first sentence is the string value to the left of the period location
        mySentence = myString.Remove(periodLocation);

        // the remainder of myString is the string value to the right of the location
        myString = myString.Substring(periodLocation + 1);

        // remove any leading white-space from myString
        myString = myString.TrimStart();

        // update the comma location and increment the counter
        periodLocation = myString.IndexOf(".");

        Console.WriteLine(mySentence);
    }
 
    mySentence = myString.Trim();
    Console.WriteLine(mySentence);
}

หากคุณประสบความสําเร็จขอแสดงความยินดี! ถ้าคุณมีปัญหา ใช้เวลาในการตรวจสอบโซลูชัน และพยายามทําความเข้าใจวิธีการทํางาน