แบบฝึกหัด - ประเมินนิพจน์
- 11 นาที
ตรรกะการตัดสินใจถูกใช้เพื่อสร้างเส้นทางอื่นผ่านรหัสของคุณ ซึ่งการตัดสินใจเกี่ยวกับเส้นทางที่จะติดตามจะขึ้นอยู่กับการประเมินของนิพจน์ ตัวอย่างเช่น คุณอาจเขียนโค้ดบางอย่างที่ดําเนินการหนึ่งในสองเส้นทางตามการป้อนข้อมูลของผู้ใช้ หากผู้ใช้ป้อนตัวอักษร "a" โค้ดของคุณจะดําเนินการบล็อกรหัสหนึ่งรายการ หากพวกเขาป้อนตัวอักษร "b" โค้ดของคุณจะดําเนินการบล็อกรหัสที่แตกต่างกัน ในตัวอย่างนี้ คุณกําลังควบคุมเส้นทางการดําเนินการตามค่าที่กําหนดให้กับสตริง รหัสของคุณเลือกเส้นทางการดําเนินการที่ยึดตามนิพจน์ วิธีการประเมินนิพจน์นั้น และตรรกะพื้นฐานที่ใช้กําหนดเส้นทาง
การตรวจสอบวิธีการสร้างและประเมินนิพจน์เป็นจุดเริ่มต้นที่ดี
นิพจน์คืออะไร
นิพจน์ คือการผสมของค่า (สัญพจน์หรือตัวแปร) ตัวดําเนินการ และวิธีการที่ส่งกลับค่าเดียว คําสั่ง เป็นคําแนะนําที่ครบถ้วนใน C# และคําสั่งประกอบด้วยอย่างน้อยหนึ่งนิพจน์ ตัวอย่างเช่น ifต่อไปนี้ประกอบด้วยนิพจน์เดียวที่ส่งกลับค่าเดียว:
if (myName == "Luiz")
คุณอาจกําลังคิดว่าค่าที่ส่งกลับโดยนิพจน์จะเป็นตัวเลขหรือสตริง ซึ่งเป็นความจริงที่ว่านักพัฒนาแอปพลิเคชันใช้นิพจน์ชนิดต่าง ๆ เพื่อวัตถุประสงค์ที่แตกต่างกัน ในกรณีนี้ เมื่อคุณกําลังพัฒนาifคําสั่งการเลือก คุณจะใช้นิพจน์ที่ส่งกลับ หรือtruefalse นักพัฒนาอ้างอิงถึงนิพจน์ประเภทนี้เป็นนิพจน์บูลีน เมื่อโค้ดของคุณมีนิพจน์บูลีน ค่าที่ส่งกลับจะเป็นค่าเดียว true หรือ false ค่าเดียวเสมอ
นิพจน์บูลีนมีความสําคัญเนื่องจากโค้ดของคุณสามารถใช้นิพจน์เหล่านี้เพื่อตัดสินใจว่าบล็อกของโค้ดใดที่จะดําเนินการ
มีตัวดําเนินการหลายชนิดที่คุณสามารถใช้ภายในนิพจน์บูลีนได้ ตัวอย่างเช่น if คําสั่งข้างต้นใช้ตัวดําเนินการ == ความเท่ากันเพื่อตรวจสอบว่าตัวแปรสตริงถูกกําหนดให้กับค่าใดค่าหนึ่งหรือไม่ ตัวดําเนินการที่คุณเลือกจะขึ้นอยู่กับเส้นทางโค้ดที่พร้อมใช้งาน เงื่อนไขที่เกี่ยวข้องกับเส้นทาง และตรรกะของแอปพลิเคชันพื้นฐาน
การประเมินความเท่ากันและความไม่เท่ากัน
หนึ่งในการประเมินรหัสที่พบบ่อยที่สุดคือการตรวจสอบเพื่อดูว่าค่าสองค่าเท่ากันหรือไม่ เมื่อตรวจสอบความเท่ากัน คุณจะค้นหาตําแหน่งตัวดําเนินการ == ความเท่ากันระหว่างสองค่าที่กําลังตรวจสอบ หากค่าด้านใดด้านหนึ่งของตัวดําเนินการความเท่ากันเทียบเท่า นิพจน์จะแสดงtrue มิฉะนั้นจะส่งกลับfalse
ในทางกลับกัน คุณอาจจําเป็นต้องตรวจสอบว่าค่าสองค่าไม่เท่ากันหรือไม่ เมื่อต้องการตรวจสอบความไม่เท่ากัน คุณจะใช้ตัวดําเนินการ != ความไม่เท่ากันระหว่างสองค่า
คุณอาจสงสัยว่าเหตุใดคุณจึงต้องการทั้งตัวดําเนินการความเท่ากันและความไม่เท่ากัน เหตุผลจะชัดเจนยิ่งขึ้นเมื่อคุณเรียนรู้วิธีสร้างคําสั่งโยงหัวข้อและเริ่มเขียนโค้ดในโลกแห่งความจริง ตัวดําเนินการสองตัวที่ทํางานในทางตรงกันข้ามช่วยให้คุณสามารถแสดงและกระชับได้มากขึ้น
ในตอนนี้ก็ถึงเวลาเตรียมสภาพแวดล้อมการเขียนโค้ดของคุณ และเริ่มเขียนโค้ดที่ประเมินนิพจน์บูลีน
เตรียมสภาพแวดล้อมการเข้ารหัสของคุณ
โมดูลนี้ประกอบด้วยกิจกรรมลงมือทําซึ่งจะแนะนําคุณตลอดกระบวนการสร้างและเรียกใช้รหัสการสาธิต คุณควรทํากิจกรรมเหล่านี้ให้เสร็จสมบูรณ์โดยใช้ Visual Studio Code เป็นสภาพแวดล้อมการพัฒนาของคุณ การใช้ Visual Studio Code สําหรับกิจกรรมเหล่านี้จะช่วยให้คุณเขียนและเรียกใช้โค้ดในสภาพแวดล้อมของนักพัฒนาที่มืออาชีพใช้ทั่วโลกได้อย่างสะดวกขึ้น
เปิด Visual Studio Code
คุณสามารถใช้เมนูเริ่มต้นของ Windows (หรือทรัพยากรที่เทียบเท่าสําหรับระบบปฏิบัติการอื่น) เพื่อเปิด Visual Studio Code
บนเมนู ไฟล์ รหัส Visual Studio เลือก เปิดโฟลเดอร์
ในกล่องโต้ตอบ เปิดโฟลเดอร์ ให้ไปยังโฟลเดอร์ Windows Desktop
หากคุณมีตําแหน่งโฟลเดอร์อื่นที่คุณเก็บโครงการโค้ดไว้ คุณสามารถใช้ตําแหน่งโฟลเดอร์นั้นแทนได้ สําหรับการฝึกนี้ สิ่งสําคัญคือการมีตําแหน่งที่ตั้งที่ง่ายต่อการค้นหาและจดจํา
ในกล่องโต้ตอบ เปิด โฟลเดอร์ ให้เลือก เลือกโฟลเดอร์
ถ้าคุณเห็นกล่องโต้ตอบความปลอดภัยที่ถามว่าคุณเชื่อถือผู้เขียนหรือไม่ ให้เลือก ใช่
บนเมนู เทอร์มินัล Visual Studio Code ให้เลือก เทอร์มินัลใหม่
โปรดสังเกตว่าพร้อมท์คําสั่งในแผงเทอร์มินัล จะแสดงเส้นทางโฟลเดอร์สําหรับโฟลเดอร์ปัจจุบัน เช่น:
C:\Users\someuser\Desktop>หมายเหตุ
ถ้าคุณกําลังทํางานบนพีซีของคุณเองแทนที่จะเป็น Sandbox หรือสภาพแวดล้อมที่เป็นโฮสต์ และคุณจบมอดูล Microsoft Learn อื่นๆ ใน C# ซีรี่ส์นี้ คุณอาจสร้างโฟลเดอร์โครงการสําหรับตัวอย่างโค้ดไว้แล้ว ถ้าเป็นกรณีนี้ คุณสามารถข้ามขั้นตอนถัดไป ซึ่งใช้เพื่อสร้างแอปคอนโซลในโฟลเดอร์ TestProject
ที่พรอมต์คําสั่งเทอร์มินัล หากต้องการสร้างแอปพลิเคชันคอนโซลใหม่ในโฟลเดอร์ที่ระบุ ให้ป้อนพร้อมท์ต่อไปนี้:
dotnet new console -o ./CsharpProjects/TestProjectคําสั่ง .NET CLI นี้ใช้เทมเพลตโปรแกรม .NET เพื่อสร้างโครงการแอปพลิเคชันคอนโซล C# ใหม่ในตําแหน่งที่ตั้งโฟลเดอร์ที่ระบุ คําสั่งจะสร้างโฟลเดอร์ CsharpProjects และ TestProject ให้คุณ และใช้ TestProject เป็นชื่อของไฟล์ของคุณ
.csprojถ้ามีข้อความแสดงขึ้นเพื่อบอกให้คุณทราบว่ามีไฟล์อยู่แล้ว ให้ทําตามขั้นตอนถัดไป คุณจะใช้ไฟล์โครงการที่มีอยู่อีกครั้ง
ในมุมมอง EXPLORER ให้ขยายโฟลเดอร์ CsharpProjects
คุณควรเห็นโฟลเดอร์ TestProject และแฟ้มสองแฟ้ม แฟ้มโปรแกรม C# ที่ชื่อว่า Program.cs และแฟ้มโครงการ C# ที่ชื่อ TestProject.csproj
บนเมนู ไฟล์ รหัส Visual Studio เลือก เปิดโฟลเดอร์
ในกล่องโต้ตอบ เปิดโฟลเดอร์ เลือกโฟลเดอร์ CsharpProjects จากนั้นเลือก เลือกโฟลเดอร์
ในมุมมอง EXPLORER ให้ขยายโฟลเดอร์ TestProject จากนั้นเลือก Program.cs
ลบบรรทัดรหัสที่มีอยู่
คุณจะใช้โครงการคอนโซล C# นี้เพื่อสร้าง สร้าง และเรียกใช้ตัวอย่างโค้ดในระหว่างโมดูลนี้
ปิดแผงเทอร์มินัล
ใช้ตัวดําเนินการความเท่ากัน
ตรวจสอบให้แน่ใจว่าคุณมี Visual Studio Code เปิดและ Program.cs แสดงในแผง ตัวแก้ไข
หมายเหตุ
Program.cs ควรว่างเปล่า ถ้าไม่ใช่ เลือกและลบบรรทัดรหัสทั้งหมด
พิมพ์โค้ดต่อไปนี้ลงใน Visual Studio Code Editor
Console.WriteLine("a" == "a"); Console.WriteLine("a" == "A"); Console.WriteLine(1 == 2); string myValue = "a"; Console.WriteLine(myValue == "a");บนเมนู ไฟล์ของ Visual Studio Code เลือก บันทึก
ต้องบันทึกไฟล์ Program.cs ก่อนที่จะสร้างหรือเรียกใช้โค้ด
ในแผง EXPLORER หากต้องการเปิดเทอร์มินัลที่ตําแหน่งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProject จากนั้นเลือก เปิดในเทอร์มินัลแบบรวม
แผงเทอร์มินัลจะเปิดขึ้น เทอร์มินัลควรมีพร้อมท์คําสั่งที่แสดงว่าเทอร์มินัลเปิดอยู่ไปยังตําแหน่งที่ตั้งโฟลเดอร์ TestProject ของคุณ
ที่พร้อมท์คําสั่งเทอร์มินัล เพื่อเรียกใช้โค้ดของคุณ ให้พิมพ์ dotnet run แล้วกด Enter
หมายเหตุ
ถ้าคุณเห็นข้อความ "ไม่พบโครงการที่จะเรียกใช้" ตรวจสอบให้แน่ใจว่าพร้อมท์คําสั่งเทอร์มินัลแสดงตําแหน่งที่ตั้งโฟลเดอร์ TestProject ที่คาดไว้ ตัวอย่าง:
C:\Users\someuser\Desktop\csharpprojects\TestProject>คุณควรเห็นผลลัพธ์ต่อไปนี้
True False False True
ปรับปรุงการตรวจสอบความเท่ากันของสตริงโดยใช้วิธีการของตัวช่วยเหลือที่มีอยู่ภายในของสตริง
คุณอาจแปลกใจว่า เอาต์พุตConsole.WriteLine("a" == "A");ของเส้นfalse เมื่อเปรียบเทียบสตริง กรณีจะมีความสําคัญ
นอกจากนี้ ให้พิจารณาโค้ดบรรทัดนี้:
Console.WriteLine("a" == "a ");
ที่นี่คุณได้เพิ่มอักขระเว้นวรรคที่ส่วนท้ายของสตริง นิพจน์นี้จะแสดงผลด้วยfalse
ในบางกรณี การมีอักขระเว้นวรรคก่อนหรือหลังข้อความอาจได้รับการยอมรับอย่างสมบูรณ์แบบ อย่างไรก็ตามหากคุณต้องการยอมรับคู่ที่ตรงกันที่ไม่แน่นอนคุณสามารถ "นวด" ข้อมูลก่อน "การแบ่งกลุ่ม" ข้อมูลหมายความว่าคุณทําการล้างข้อมูลบางอย่างก่อนที่คุณจะทําการเปรียบเทียบเพื่อความเท่ากัน
ตัวอย่างเช่น พิจารณากรณีเมื่อคุณรวบรวมข้อมูลป้อนเข้าของผู้ใช้ภายในการวนรอบ หลังจากป้อนค่าแต่ละค่าแล้ว คุณสามารถให้พร้อมท์แก่ผู้ใช้เพื่อตรวจสอบว่าพวกเขาต้องการดําเนินการต่อหรือไม่ เช่นDo you want to continue (Y/N)? ถ้าผู้ใช้ต้องการดําเนินการต่อ พวกเขาอาจป้อน y หรือY คุณจะต้องให้โค้ดของคุณแปลค่าทั้งสองเท่าๆ กัน แม้ว่าจะ y ไม่เทียบเท่ากับ Yก็ตาม
ก่อนที่คุณจะตรวจสอบค่าสตริงสองค่าเพื่อความเท่ากัน โดยเฉพาะอย่างยิ่งเมื่อค่าหนึ่งหรือทั้งสองค่าถูกป้อนโดยผู้ใช้ คุณควร:
- ตรวจสอบให้แน่ใจว่าสตริงทั้งสองเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กทั้งหมดโดยใช้
ToUpper()วิธีการ หรือToLower()ตัวช่วยเหลือ ในค่าสตริงใด ๆ - ลบช่องว่างนําหน้าหรือต่อท้ายโดยใช้เมธอดผู้ช่วยเหลือใน
Trim()ค่าสตริงใด ๆ
คุณสามารถปรับปรุงการตรวจสอบความเท่ากันก่อนหน้านี้ได้โดยการเชื่อมโยงวิธีการช่วยเหลือสองวิธีนี้ในค่าทั้งสอง ดังที่แสดงในรายการโค้ดต่อไปนี้:
แทนที่โค้ดใน Visual Studio Code Editor ด้วยโค้ดต่อไปนี้:
string value1 = " a"; string value2 = "A "; Console.WriteLine(value1.Trim().ToLower() == value2.Trim().ToLower());บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อเรียกใช้โค้ดของคุณ
โปรดสังเกตว่าเมื่อคุณเรียกใช้โค้ดในขณะนี้ รหัสจะแสดงผลเป็น True
ใช้ตัวดําเนินการความไม่เท่ากัน
ใช้ตัวดําเนินการ
//ข้อคิดเห็นบรรทัดเพื่อแสดงข้อคิดเห็นเกี่ยวกับรหัสทั้งหมดจากขั้นตอนก่อนหน้าพิมพ์โค้ดต่อไปนี้ลงใน Visual Studio Code Editor
Console.WriteLine("a" != "a"); Console.WriteLine("a" != "A"); Console.WriteLine(1 != 2); string myValue = "a"; Console.WriteLine(myValue != "a");บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อเรียกใช้โค้ดของคุณ
คุณควรเห็นผลลัพธ์ต่อไปนี้
False True True False
ตามที่คุณคาดหวัง ผลลัพธ์เมื่อใช้ตัวดําเนินการความไม่เท่ากันคือสิ่งตรงข้ามกับสิ่งที่คุณเห็นเมื่อใช้ตัวดําเนินการความเท่ากัน ซึ่งหมายความว่าโค้ดของคุณจะแตกแขนงในทางตรงกันข้ามเช่นกัน ซึ่งอาจเป็นสิ่งที่คุณต้องการ
กําลังประเมินการเปรียบเทียบ
เมื่อทํางานกับชนิดข้อมูลตัวเลข คุณอาจต้องการตรวจสอบว่าค่าใหญ่กว่าหรือน้อยกว่าค่าอื่นหรือไม่ ใช้ตัวดําเนินการต่อไปนี้เพื่อดําเนินการเปรียบเทียบประเภทเหล่านี้:
- มากกว่า
> - น้อยกว่า
< - มากกว่าหรือเท่ากับ
>= - น้อยกว่าหรือเท่ากับ
<=
โดยปกติ == ตัวดําเนินการ และ != ที่คุณใช้เพื่อเปรียบเทียบค่าสตริงด้านบนจะทํางานเมื่อเปรียบเทียบชนิดข้อมูลตัวเลขด้วย
ใช้ตัวดําเนินการเปรียบเทียบ
ใช้ตัวดําเนินการ
//ข้อคิดเห็นบรรทัดเพื่อแสดงข้อคิดเห็นเกี่ยวกับรหัสทั้งหมดจากงานก่อนหน้านี้พิมพ์โค้ดต่อไปนี้ลงใน Visual Studio Code Editor
Console.WriteLine(1 > 2); Console.WriteLine(1 < 2); Console.WriteLine(1 >= 1); Console.WriteLine(1 <= 1);บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อสร้างและเรียกใช้โค้ดของคุณ
คุณควรเห็นผลลัพธ์ต่อไปนี้:
False True True True
วิธีการส่งกลับค่าบูลีน
บางวิธีส่งกลับค่าบูลีน (true หรือ false) ในแบบฝึกหัดต่อไปนี้ คุณจะใช้เมธอดที่มีอยู่ภายในของ String คลาสเพื่อพิจารณาว่าสตริงที่มีขนาดใหญ่กว่ามีคําหรือวลีเฉพาะที่มีความสําคัญต่อแอปพลิเคชันของคุณหรือไม่
หมายเหตุ
ชนิดข้อมูลบางชนิดมีวิธีการที่ทํางานด้านอรรถประโยชน์ที่เป็นประโยชน์ ชนิดข้อมูล String มีหลายประเภทเหล่านี้ หลายส่งกลับค่าบูลีนที่รวมถึง Contains(), StartsWith()และEndsWith() คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับแหล่งข้อมูลได้ในโมดูล Microsoft Learn "จัดการข้อมูลพยัญชนะผสมตัวเลขโดยใช้เมธอด String class ใน C#"
ใช้วิธีการที่ส่งกลับบูลีน
ใช้ตัวดําเนินการ
//ข้อคิดเห็นบรรทัดเพื่อแสดงข้อคิดเห็นเกี่ยวกับรหัสทั้งหมดจากขั้นตอนก่อนหน้าพิมพ์โค้ดต่อไปนี้ลงใน Visual Studio Code Editor
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(pangram.Contains("fox")); Console.WriteLine(pangram.Contains("cow"));บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อสร้างและเรียกใช้โค้ดของคุณ
คุณควรเห็นผลลัพธ์ต่อไปนี้
True False
ค่าลบเชิงตรรกะคืออะไร
คําว่า "ค่าลบเชิงตรรกะ" หมายถึง ตัวดําเนินการ !นิติวิภาคยูนารี บางคนเรียกตัวดําเนินการนี้ว่า "ไม่ใช่ตัวดําเนินการ" เมื่อคุณวางตัว ! ดําเนินการก่อนนิพจน์เงื่อนไข (หรือโค้ดใด ๆ ที่ประเมินเป็น true หรือ false) จะบังคับให้รหัสของคุณย้อนกลับการประเมินตัวถูกดําเนินการ เมื่อมีการใช้ค่าลบเชิงตรรกะ การประเมินจะสร้าง true ถ้าตัวถูกดําเนินการ ประเมินเป็น false และ false ถ้าตัวถูกดําเนินการประเมินเป็นtrue
นี่คือตัวอย่างที่อาจช่วยให้คุณเห็นการเชื่อมต่อระหว่างแนวคิดเหล่านี้ บรรทัดรหัสสองบรรทัดต่อไปนี้สร้างผลลัพธ์เดียวกัน เส้นที่สองมีขนาดกะทัดรัดกว่า
// These two lines of code will create the same output
Console.WriteLine(pangram.Contains("fox") == false);
Console.WriteLine(!pangram.Contains("fox"));
ใช้ตัวดําเนินการลบเชิงตรรกะ
ใช้ตัวดําเนินการ
//ข้อคิดเห็นบรรทัดเพื่อแสดงข้อคิดเห็นเกี่ยวกับรหัสทั้งหมดจากขั้นตอนก่อนหน้าพิมพ์โค้ดต่อไปนี้ลงใน Visual Studio Code Editor
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(!pangram.Contains("fox")); Console.WriteLine(!pangram.Contains("cow"));บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อสร้างและเรียกใช้โค้ดของคุณ
คุณควรเห็นผลลัพธ์ต่อไปนี้
False True
ตัวดําเนินการความไม่เท่ากันเทียบกับค่าลบเชิงตรรกะ
ตัวดําเนินการ != ความไม่เท่ากันมี ! อักขระ แต่ไม่ควรสับสนกับค่าลบเชิงตรรกะ ตัวดําเนินการความไม่เท่ากันจะส่งกลับ true ถ้าตัวถูกดําเนินการไม่เท่ากัน และส่งกลับ false ถ้าตัวถูกดําเนินการเท่ากัน สําหรับตัวถูกดําเนินการของชนิดภายใน นิพจน์ x != y จะสร้างผลลัพธ์เดียวกับนิพจน์ !(x == y) (ตัวอย่างของนิเสธเชิงตรรกะ)
ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นถึงการใช้ตัว != ดําเนินการ:
int a = 7;
int b = 6;
Console.WriteLine(a != b); // output: True
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine(s1 != s2); // output: False
สรุป
นี่คือประเด็นหลักที่คุณเรียนรู้เกี่ยวกับการประเมินนิพจน์บูลีนจนถึงตอนนี้:
- มีนิพจน์หลายชนิดที่ประเมินเป็น
trueหรือfalse - ประเมินความเท่ากันโดยใช้ตัว
==ดําเนินการ - การประเมินความเท่ากันของสตริงกําหนดให้คุณพิจารณาความเป็นไปได้ว่าสตริงมีช่องว่างนําหน้าหรือต่อท้ายแตกต่างกัน ขึ้นอยู่กับสถานการณ์ของคุณ ใช้วิธีการ หรือ
ToLower()ToUpper()ผู้ช่วยเหลือ และวิธีการของผู้Trim()ช่วยเหลือเพื่อปรับปรุงความเป็นไปได้ที่สองสตริงจะเท่ากัน - ประเมินความไม่เท่ากันโดยใช้ตัว
!=ดําเนินการ - ประเมินค่ามากกว่า น้อยกว่า และการดําเนินการที่คล้ายกันโดยใช้ตัวดําเนินการเปรียบเทียบ เช่น
><,>=, และ<= - ถ้าเมธอด ส่งกลับบูลีน จะสามารถใช้เป็นนิพจน์บูลีนได้
- ใช้ตัวดําเนินการ
!นิเสธเชิงตรรกะเพื่อประเมินค่าตรงข้ามของนิพจน์ที่ระบุ