แบบฝึกหัด - สร้างตรรกะการตัดสินใจด้วยคําสั่ง If
- 19 นาที
แอปพลิเคชันส่วนใหญ่ประกอบด้วยเส้นทางการดําเนินการจํานวนมาก ตัวอย่างเช่น แอปพลิเคชันอาจใช้เส้นทางการดําเนินการที่แตกต่างกันตามตัวเลือกเมนูที่ผู้ใช้เลือก นักพัฒนาอ้างอิงถึงโค้ดที่ใช้เส้นทางการดําเนินการที่แตกต่างกันเป็นสาขารหัส
คําสั่งการโยงสาขาของ if รหัสที่ใช้กันอย่างแพร่หลายมากที่สุดคือคําสั่ง คําสั่ง if อาศัยนิพจน์บูลีนที่อยู่ในชุดวงเล็บ ถ้านิพจน์เป็นจริง รหัสหลังจาก if คําสั่งจะถูกดําเนินการ ถ้าไม่ เป็นเช่นนั้น รันไทม์ .NET จะละเว้นโค้ดและจะไม่ดําเนินการ
ในแบบฝึกหัดนี้ คุณจะได้ฝึกเขียน if คําสั่งโดยการสร้างเกม ก่อนอื่นคุณจะต้องกําหนดกฎของเกม จากนั้นคุณจะใช้กฎเหล่านั้นในโค้ด
คุณจะใช้ Random.Next() วิธีการเพื่อจําลองการหมุนลูกเต๋าหกด้านสามด้าน คุณจะประเมินค่าสะสมเพื่อคํานวณคะแนน ถ้าคะแนนมากกว่าผลรวมโดยพลการ จากนั้นคุณจะแสดงข้อความชนะให้กับผู้ใช้ ถ้าคะแนนอยู่ต่ํากว่า cutoff คุณจะเห็นข้อความที่สูญเสียให้กับผู้ใช้
- ถ้าสองลูกเต๋าใด ๆ ที่คุณม้วนส่งผลให้มีค่าเดียวกัน คุณจะได้รับคะแนนโบนัสสองคะแนนสําหรับการเลื่อนสองเท่า
- ถ้าลูกเต๋าทั้งสามลูกจะส่งผลให้มีค่าเดียวกัน คุณจะได้รับคะแนนโบนัสหกคะแนนสําหรับการหมุนสามเท่า
- หากผลรวมของลูกเต๋าสามม้วนบวกกับโบนัสจุดใด ๆ เป็น 15 หรือมากกว่าคุณจะชนะเกม มิฉะนั้นคุณจะสูญเสีย
คุณจะปรับปรุงกฎเมื่อคุณเรียนรู้เพิ่มเติมเกี่ยวกับ if คําสั่ง
สําคัญ
แบบฝึกหัดนี้ทําให้ใช้ชั้นเรียน System.Random อย่างกว้างขวาง คุณสามารถอ้างอิงโมดูล Microsoft Learn ที่ชื่อว่า "เรียกเมทริกซ์จากไลบรารีคลาส .NET โดยใช้ C#" หากคุณต้องการวิธี Random.Next() การทํางานของตัวรีเฟรช
เตรียมสภาพแวดล้อมการเข้ารหัสของคุณ
โมดูลนี้ประกอบด้วยกิจกรรมที่แนะนําคุณเกี่ยวกับกระบวนการสร้างและการเรียกใช้โค้ดตัวอย่าง คุณควรทํากิจกรรมเหล่านี้ให้เสร็จสมบูรณ์โดยใช้ 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# นี้เพื่อสร้าง สร้าง และเรียกใช้ตัวอย่างโค้ดในระหว่างโมดูลนี้
ปิดแผงเทอร์มินัล
เขียนรหัสที่สร้างตัวเลขสุ่มสามตัวและแสดงในเอาต์พุต
ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs ที่ว่างเปล่าเปิดอยู่ในรหัส Visual Studio
หากต้องการสร้างโค้ดเริ่มต้นสําหรับแบบฝึกหัดนี้ ให้ป้อนข้อมูลต่อไปนี้:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}");ใช้เวลาสักครู่เพื่อตรวจสอบรหัสที่คุณป้อน
เมื่อต้องการเริ่มต้น คุณต้องสร้างอินสแตนซ์ใหม่ของ
System.Randomคลาส และจัดเก็บการอ้างอิงไปยังออบเจ็กต์ ในตัวแปรที่ชื่อว่าdiceจากนั้น คุณเรียกใช้Random.Next()เมธอด บนdiceวัตถุสามครั้ง โดยมีทั้งขอบเขตที่ต่ํากว่าและด้านบนเพื่อจํากัดค่าที่เป็นไปได้ระหว่าง1และ6(ขอบสูงสุดเป็นแบบพิเศษ) คุณสามารถบันทึกตัวเลขสุ่มสามตัวในตัวแปรroll1,roll2และroll3ตามลําดับถัดไป คุณจะรวมค่าม้วนสามส่วน และบันทึกค่าลงในตัวแปรจํานวนเต็มที่ชื่อว่า
totalในตอนท้าย คุณใช้
WriteLine()เมธอด เพื่อแสดงค่าสามค่าโดยใช้การประมาณค่าสตริงเมื่อคุณเรียกใช้รหัส คุณควรเห็นข้อความต่อไปนี้ (ตัวเลขจะแตกต่างกัน)
Dice roll: 4 + 5 + 2 = 11งานแรกนี้เป็นงานการตั้งค่า ตอนนี้คุณสามารถเพิ่มตรรกะการตัดสินใจลงในรหัสของคุณเพื่อให้เกมน่าสนใจมากขึ้น
เพิ่มคําสั่ง if เพื่อแสดงข้อความที่แตกต่างกันโดยยึดตามค่าของตัวแปรผลรวม
ใน Visual Studio Code Editor ค้นหาเคอร์เซอร์ที่ด้านล่างของไฟล์โค้ดของคุณ จากนั้นสร้างบรรทัดโค้ดเปล่า
หากต้องการสร้างคุณสมบัติเกมแรกให้ป้อนคําสั่งต่อไปนี้
ifif (total > 14) { Console.WriteLine("You win!"); } if (total < 15) { Console.WriteLine("Sorry, you lose."); }ข้อความสอง
ifรายการนี้ใช้เพื่อจัดการกับสถานการณ์การชนะและการสูญเสีย ใช้เวลาสักครู่ในการตรวจสอบคําสั่งแรกifโปรดสังเกตว่าคําสั่ง
ifถูกสร้างขึ้นจากสามส่วน:- คําสําคัญ
if -
นิพจน์บูลีนระหว่างวงเล็บ
() -
บล็อกรหัสที่กําหนดโดยวงเล็บปีกกา
{ }
ในขณะทํางาน นิพจน์
total > 14บูลีนจะถูกประเมิน หากนี่เป็นคําสั่งจริง (หากค่าของtotalมากกว่า14) โฟลว์ของการดําเนินการจะยังคงเป็นรหัสที่กําหนดไว้ในบล็อกรหัส กล่าวอีกนัยหนึ่งก็จะดําเนินการโค้ดในวงเล็บปีกกาอย่างไรก็ตาม หากนิพจน์บูลีนเป็น false (ค่า
totalไม่มากกว่า14) โฟลว์ของการดําเนินการจะข้ามบล็อกโค้ด กล่าวอีกนัยหนึ่งมันจะไม่ดําเนินการโค้ดในวงเล็บปีกกาสุดท้าย คําสั่งที่สอง
ifจะควบคุมข้อความถ้าผู้ใช้สูญเสีย ในหน่วยถัดไป คุณจะใช้การเปลี่ยนแปลงในifคําสั่ง เพื่อย่อสองคําสั่งเหล่านี้ให้เป็นคําสั่งเดียวที่แสดงเจตนาได้ชัดเจนยิ่งขึ้น- คําสําคัญ
นิพจน์บูลีนคืออะไร
นิพจน์บูลีนคือโค้ดใด ๆ ที่ส่งกลับค่าบูลีน หรือtruefalse นิพจน์บูลีนที่ง่ายที่สุดเป็นเพียงค่า true และfalse หรืออีกวิธีหนึ่งคือ นิพจน์บูลีนอาจเป็นผลลัพธ์ของเมธอด ที่ส่งกลับค่า true หรือfalse ตัวอย่างเช่น นี่คือตัวอย่างโค้ดอย่างง่ายโดยใช้ string.Contains() เมธอด เพื่อประเมินว่าสตริงหนึ่งมีสตริงอื่นหรือไม่
string message = "The quick brown fox jumps over the lazy dog.";
bool result = message.Contains("dog");
Console.WriteLine(result);
if (message.Contains("fox"))
{
Console.WriteLine("What does the fox say?");
}
เนื่องจาก ส่งกลับmessage.Contains("fox")trueค่า หรือ false ระบบจึงมีคุณสมบัติเป็นนิพจน์บูลีนและสามารถใช้ได้ในifคําสั่ง
นิพจน์บูลีนแบบง่ายอื่น ๆ สามารถสร้างขึ้นได้โดยใช้ตัวดําเนินการเพื่อเปรียบเทียบสองค่า ตัวดําเนินการประกอบด้วย:
-
==ตัวดําเนินการ "equals" เพื่อทดสอบความเท่ากัน -
>ตัวดําเนินการ "มากกว่า" เพื่อทดสอบว่าค่าทางด้านซ้ายมากกว่าค่าทางด้านขวา -
<ตัวดําเนินการ "น้อยกว่า" เพื่อทดสอบว่าค่าทางด้านซ้ายน้อยกว่าค่าทางด้านขวา -
>=ตัวดําเนินการ "มากกว่าหรือเท่ากับ" -
<=ตัวดําเนินการ "น้อยกว่าหรือเท่ากับ" - และอื่นๆ
หมายเหตุ
ชุดการฝึกอบรม C# บน Microsoft Learn พัฒนาโมดูลทั้งหมดให้กับนิพจน์บูลีน มีตัวดําเนินการมากมายที่คุณสามารถใช้เพื่อสร้างนิพจน์บูลีน และคุณจะครอบคลุมพื้นฐานบางอย่างในมอดูลนี้เท่านั้น สําหรับข้อมูลเพิ่มเติมเกี่ยวกับนิพจน์บูลีน ให้ดูโมดูล Microsoft Learn ที่ชื่อว่า "ประเมินนิพจน์บูลีนเพื่อทําการตัดสินใจใน C#"
ในตัวอย่างนี้ คุณได้ประเมินนิพจน์ total > 14บูลีน อย่างไรก็ตาม คุณสามารถเลือกนิพจน์ total >= 15 บูลีนได้เนื่องจากในกรณีนี้นิพจน์เหล่านั้นเหมือนกัน กําหนดว่ากฎของเกมระบุ "หากผลรวมของสามลูกเต๋าบวกกับโบนัสใด ๆ คือ 15 หรือมากกว่าคุณชนะเกม" คุณควรจะใช้ >= 15 นิพจน์ คุณจะทําการเปลี่ยนแปลงนั้นในขั้นตอนถัดไปของแบบทดสอบ
บล็อกรหัสคืออะไร
บล็อกรหัสคือคอลเลกชันของโค้ดอย่างน้อยหนึ่งบรรทัดที่กําหนดโดยการเปิดและปิดสัญลักษณ์ { }วงเล็บปีกกา ซึ่งแสดงหน่วยที่สมบูรณ์ของโค้ดที่มีวัตถุประสงค์เดียวในระบบซอฟต์แวร์ของคุณ ในกรณีนี้ ในขณะทํางาน บรรทัดทั้งหมดของรหัสในบล็อกรหัสจะถูกดําเนินการหากนิพจน์บูลีนเป็นจริง ในทางกลับกัน หากนิพจน์บูลีนเป็นเท็จ บรรทัดทั้งหมดของรหัสในบล็อกรหัสจะถูกละเว้น
นอกจากนี้คุณควรทราบว่าบล็อกโค้ดสามารถประกอบด้วยบล็อกโค้ดอื่น ๆ ได้ อันที่จริงแล้ว เป็นเรื่องปกติที่บล็อกโค้ดหนึ่งบล็อกจะ "ซ้อนกัน" ภายในบล็อกโค้ดอื่นในแอปพลิเคชันของคุณ คุณจะเริ่มซ้อนบล็อกโค้ดของคุณเองในภายหลังในโมดูลนี้เมื่อคุณสร้างคําสั่งหนึ่งภายในบล็อกโค้ดของอีกบล็อกหนึ่งif
หมายเหตุ
ชุดการฝึกอบรม C# บน Microsoft Learn ทุ่มเทโมดูลทั้งหมดเพื่อทําความเข้าใจบล็อกโค้ด บล็อกรหัสเป็นศูนย์กลางในการทําความเข้าใจเกี่ยวกับองค์กรและโครงสร้างโค้ด และเป็นตัวกําหนดขอบเขตของขอบเขตตัวแปร สําหรับข้อมูลเพิ่มเติมเกี่ยวกับบล็อกโค้ด ให้ดูโมดูลที่ชื่อว่า "ควบคุมขอบเขตตัวแปรและตรรกะโดยใช้บล็อกโค้ดใน C#"
เพิ่มอีกรายการหนึ่งถ้าคําสั่งเพื่อใช้โบนัสสองเท่า
ถัดไป คุณสามารถใช้กฎได้: "ถ้าลูกเต๋าสองลูกใด ๆ ที่คุณม้วนส่งผลให้มีค่าเดียวกัน คุณจะได้รับคะแนนโบนัสสองจุดสําหรับการสะสมเป็นสองเท่า" ปรับเปลี่ยนโค้ดจากขั้นตอนก่อนหน้าเพื่อให้ตรงกับรายการโค้ดต่อไปนี้:
ในตัวแก้ไขรหัส Visual Studio ให้ค้นหาเคอร์เซอร์บนบรรทัดโค้ดว่างเหนือคําสั่งแรก
ifหากต้องการสร้างคุณลักษณะของเกม "สองเท่า" ให้ป้อนคําสั่งต่อไปนี้
ifif ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; }ที่นี่คุณสามารถรวมนิพจน์บูลีนสามรายการเพื่อสร้างนิพจน์บูลีนแบบรวมหนึ่งนิพจน์ในโค้ดบรรทัดเดียว ซึ่งบางครั้งเรียกว่าสภาพทบต้น คุณมีวงเล็บด้านนอกหนึ่งชุดที่รวมวงเล็บภายในสามชุดที่คั่นด้วยอักขระไปป์สองตัว
อักขระ
||ไปป์คู่เป็นตัวดําเนินการ OR เชิงตรรกะ ซึ่งโดยทั่วไปจะระบุว่า "นิพจน์ที่อยู่ทางด้านซ้ายของฉัน หรือนิพจน์ทางด้านขวาจะต้องเป็นจริงเพื่อให้นิพจน์บูลีนทั้งหมดเป็นจริง" หากนิพจน์บูลีนทั้งสองรายการเป็นเท็จ นิพจน์บูลีนทั้งหมดจะเป็น เท็จ คุณใช้ตัวดําเนินการ OR เชิงตรรกะสองตัวเพื่อให้คุณสามารถขยายการประเมินไปยังนิพจน์บูลีนที่สามก่อนอื่น คุณประเมิน
(roll1 == roll2)ถ้าค่าเป็นจริง นิพจน์ทั้งหมดจะเป็น true ถ้าเป็นเท็จ คุณจะประเมิน(roll2 == roll3)ถ้าค่าเป็นจริง นิพจน์ทั้งหมดจะเป็น true ถ้าเป็นเท็จ คุณจะประเมิน(roll1 == roll3)ถ้าค่าเป็นจริง นิพจน์ทั้งหมดจะเป็น true หากค่าดังกล่าวเป็นเท็จ นิพจน์ทั้งหมดจะเป็นเท็จหากนิพจน์บูลีนแบบรวมเป็นจริง คุณต้องดําเนินการบล็อกโค้ดต่อไปนี้ ขณะนี้ มีรหัสอยู่สองบรรทัด บรรทัดแรกของรหัสจะพิมพ์ข้อความไปยังผู้ใช้ บรรทัดที่สองของโค้ดจะเพิ่มค่าของ
totalตาม2เพื่อปรับปรุงความยากง่ายในการอ่านโค้ดของคุณ ให้อัปเดตคําสั่งที่สอง
ifดังนี้:if (total >= 15)โปรดสังเกตว่า คุณกําลังใช้ตัว
>=ดําเนินการ ในนิพจน์ที่ใช้ในการประเมินการชนะ ตัว>=ดําเนินการ หมายถึง "มากกว่าหรือเท่ากับ" ผลที่ได้คือ คุณสามารถเปรียบเทียบtotalกับค่า15ของ แทน14ด้วยการเปลี่ยนแปลงเหล่านี้ นิพจน์ที่คุณใช้เพื่อประเมินการชนะในตอนนี้คล้ายคลึงกับนิพจน์ที่คุณประเมินสําหรับม้วนที่สูญเสีย ซึ่งจะช่วยให้เข้าใจโค้ดของคุณได้ง่ายขึ้น (อ่านได้ง่ายขึ้น) เนื่องจากคุณกําลังจัดการกับค่าจํานวนเต็ม นิพจน์(total >= 15)ใหม่ของคุณจะทํางานเหมือนกับสิ่งที่คุณเขียนไว้ก่อนหน้านี้(total > 14)ใช้เวลาสักครู่ในการตรวจสอบรหัสของคุณ
โค้ดของคุณควรตรงกับรายการต่อไปนี้:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } if (total >= 15) { Console.WriteLine("You win!"); } if (total < 15) { Console.WriteLine("Sorry, you lose."); }สังเกตการจัดแนวที่ปรับปรุงแล้วระหว่างนิพจน์ที่ใช้ในการประเมินการชนะและการสูญเสียม้วน
เพิ่มอีกหนึ่งถ้าคําสั่งเพื่อใช้โบนัสสามครั้ง
ถัดไป คุณสามารถใช้กฎได้: "ถ้าลูกเต๋าทั้งสามที่คุณม้วนส่งผลให้มีค่าเดียวกัน คุณจะได้รับคะแนนโบนัสหกจุดสําหรับการกลิ้งสามเหลี่ยม" ปรับเปลี่ยนโค้ดจากขั้นตอนก่อนหน้านี้เพื่อให้ตรงกับรายการโค้ดต่อไปนี้:
ในตัวแก้ไขรหัส Visual Studio ให้สร้างบรรทัดโค้ดเปล่าด้านล่างบล็อกรหัสของคําสั่ง "doubles"
ifของคุณหากต้องการสร้างฟีเจอร์ของเกม "สามตัว" ให้ป้อนข้อความต่อไปนี้
ifif ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; }ที่นี่คุณสามารถรวมนิพจน์บูลีนสองนิพจน์เพื่อสร้างนิพจน์บูลีนแบบรวมหนึ่งนิพจน์ในโค้ดบรรทัดเดียว คุณมีวงเล็บภายนอกหนึ่งชุดที่รวมวงเล็บภายในสองชุดที่คั่นด้วยอักขระและอักขระสองตัว
อักขระ
&&เครื่องหมายแอมเพอร์แซนด์คู่เป็นตัวดําเนินการ AND เชิงตรรกะ ซึ่งโดยทั่วไปจะระบุว่า "เฉพาะเมื่อนิพจน์ทั้งสองเป็นจริง ดังนั้นนิพจน์ทั้งหมดจะเป็น true" ในกรณีนี้ หากroll1เท่ากับroll2และroll2เท่ากับroll3จากนั้นโดยการหักลบroll1ต้องเท่ากับroll3และผู้ใช้หมุนสามเท่าบนเมนู ไฟล์ของ Visual Studio Code ให้คลิก บันทึก
ใช้เวลาสักครู่ในการตรวจสอบรหัสของคุณ
ตรวจสอบให้แน่ใจว่าโค้ดของคุณตรงกับรายการต่อไปนี้:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } if (total >= 15) { Console.WriteLine("You win!"); } if (total < 15) { Console.WriteLine("Sorry, you lose."); }ในมุมมอง EXPLORER เมื่อต้องการเปิดเทอร์มินัลที่ตําแหน่งที่ตั้งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProject จากนั้นเลือกเปิดในเทอร์มินัลรวม
แผงเทอร์มินัลควรเปิดขึ้น และควรมีพร้อมท์คําสั่งที่แสดงว่าเทอร์มินัลเปิดอยู่ไปยังตําแหน่งที่ตั้งโฟลเดอร์ TestProject ของคุณ
ที่พร้อมท์คําสั่งเทอร์มินัล เมื่อต้องการเรียกใช้โค้ดของคุณ ให้พิมพ์ dotnet เรียกใช้ แล้วกด Enter
หมายเหตุ
ถ้าคุณเห็นข้อความ "ไม่พบโครงการที่จะเรียกใช้" ตรวจสอบให้แน่ใจว่าพร้อมท์คําสั่งเทอร์มินัลแสดงตําแหน่งที่ตั้งโฟลเดอร์ TestProject ที่คาดไว้ ตัวอย่าง:
C:\Users\someuser\Desktop\csharpprojects\TestProject>คุณควรเห็นเอาต์พุตที่คล้ายกับหนึ่งในผลลัพธ์ต่อไปนี้:
Dice roll: 3 + 6 + 1 = 10 Sorry, you lose.หรือเช่นนี้:
Dice roll: 1 + 4 + 4 = 9 You rolled doubles! +2 bonus to total! Sorry, you lose.หรือเช่นนี้:
Dice roll: 5 + 6 + 4 = 15 You win!หรือ ถ้าคุณโชคดี คุณจะเห็นข้อมูลนี้:
Dice roll: 6 + 6 + 6 = 18 You rolled doubles! +2 bonus to total! You rolled triples! +6 bonus to total! You win!แต่รอคุณควรให้รางวัลกับผู้เล่นที่มีทั้งโบนัสสามเท่าและโบนัสสองเท่าหรือไม่? ท้ายที่สุดในการหมุนสามเท่าหมายความว่าพวกเขายังหมุนเป็นสองเท่า ตามแนวคิดแล้วโบนัสไม่ควรเรียงซ้อน ควรมีเงื่อนไขโบนัสที่แยกต่างหากสองเงื่อนไข นี่คือข้อบกพร่องในตรรกะที่จะต้องได้รับการแก้ไข
ปัญหาในตรรกะและโอกาสของคุณในการปรับปรุงโค้ด
แม้ว่านี่จะเป็นการเริ่มต้นที่ดี และคุณได้เรียนรู้มากมายเกี่ยวกับ if คําสั่ง นิพจน์บูลีน บล็อกรหัส ตรรกะ OR และ AND ตัวดําเนินการ และอื่นๆ มีจํานวนมากที่สามารถปรับปรุงได้ คุณจะทําเช่นนั้นในหน่วยถัดไป
สรุป
- ใช้คําสั่ง
ifเพื่อแตกแขนงตรรกะรหัสของคุณ คําสั่งifการตัดสินใจจะดําเนินการโค้ดในบล็อกโค้ดหากนิพจน์บูลีนเท่ากับ true มิฉะนั้นรันไทม์จะข้ามบล็อกโค้ดและดําเนินการต่อไปยังบรรทัดถัดไปของโค้ดหลังจากบล็อกโค้ด - นิพจน์บูลีนคือนิพจน์ใด ๆ ที่ส่งกลับค่าบูลีน
- ตัวดําเนินการบูลีนจะเปรียบเทียบค่าสองค่าทางด้านซ้ายและด้านขวาเพื่อความเท่าเทียมกัน การเปรียบเทียบ และอื่นๆ
- บล็อกรหัสจะถูกกําหนดโดยวงเล็บปีก
{ }กา ซึ่งรวบรวมบรรทัดของโค้ดที่ควรถือว่าเป็นหน่วยเดียว - ตัวดําเนินการ
&&AND ตรรกะรวมนิพจน์สองรายการเพื่อให้นิพจน์ย่อยทั้งสองต้องเป็นจริงเพื่อให้นิพจน์ทั้งหมดเป็นจริง - ตัวดําเนินการ
||OR เชิงตรรกะรวมนิพจน์สองรายการเพื่อให้หากนิพจน์ย่อยใดนิพจน์หนึ่งเป็นจริง นิพจน์ทั้งหมดจะเป็น true
ตรวจสอบความรู้ของคุณ
คำติชม
หน้านี้มีประโยชน์หรือไม่
ไม่
ต้องการความช่วยเหลือในหัวข้อนี้หรือไม่
ต้องการลองใช้ Ask Learn เพื่อทําให้ชัดเจนหรือแนะนําคุณผ่านหัวข้อนี้หรือไม่