【คำนำ】
คำสั่งควบคุมกระบวนการ:
ในระหว่างการดำเนินการของโปรแกรมคำสั่งการดำเนินการของแต่ละคำสั่งมีผลกระทบโดยตรงต่อผลลัพธ์ของโปรแกรม กล่าวอีกนัยหนึ่งกระบวนการของโปรแกรมมีผลกระทบโดยตรงต่อผลการดำเนินงาน ดังนั้นเราจะต้องชัดเจนเกี่ยวกับกระบวนการดำเนินการของแต่ละคำสั่ง ยิ่งกว่านั้นหลายครั้งที่เราจำเป็นต้องใช้ฟังก์ชั่นที่เราต้องการให้เสร็จสมบูรณ์โดยการควบคุมลำดับการดำเนินการของคำสั่ง
การจำแนกคำสั่งควบคุมกระบวนการ:
โครงสร้างการเลือกโครงสร้างตามลำดับ: ถ้าคำสั่ง, สวิตช์คำสั่งลูปโครงสร้าง: ในขณะที่คำสั่งสำหรับคำสั่ง
1. โครงสร้างลำดับ:
มันเป็นตัวควบคุมกระบวนการที่ง่ายที่สุดและพื้นฐานที่สุดในโปรแกรมโดยไม่มีโครงสร้างไวยากรณ์เฉพาะและดำเนินการตามลำดับตามลำดับของรหัส รหัสส่วนใหญ่ในโปรแกรมดำเนินการด้วยวิธีนี้
โดยทั่วไป: เขียนด้านหน้าและดำเนินการก่อนเขียนด้านหลังและดำเนินการในภายหลัง
แผนภาพโครงสร้างลำดับ:
2. เลือกโครงสร้าง:
โครงสร้างการเลือก: ยังเป็นที่รู้จักกันในชื่อโครงสร้างสาขา มีกฎไวยากรณ์เฉพาะสำหรับโครงสร้างการเลือก รหัสจะต้องดำเนินการเชิงตรรกะเฉพาะสำหรับการตัดสิน มีสองผลลัพธ์ของการดำเนินการเชิงตรรกะดังนั้นการเลือกจะถูกสร้างขึ้นและรหัสที่แตกต่างกันจะดำเนินการตามตัวเลือกที่แตกต่างกัน
ภาษา Java ให้คำสั่งโครงสร้างสองตัวเลือก:
ถ้าแถลงการณ์
คำสั่งเปลี่ยน
3. ถ้าคำสั่งที่เลือกโครงสร้าง:
มีสามรูปแบบสำหรับงบ มาอธิบายรายละเอียดด้านล่าง
1. รูปแบบแรกของคำสั่ง IF: (เหมาะสำหรับการตัดสิน)
คัดลอกรหัสรหัสดังต่อไปนี้: ถ้า (นิพจน์เชิงสัมพันธ์) {คำสั่ง Body;}
กระบวนการดำเนินการ:
ขั้นแรกให้ตรวจสอบว่าการแสดงออกของความสัมพันธ์นั้นเป็นจริงหรือเท็จ: หากเป็นจริงให้ดำเนินการตามคำสั่ง หากเป็นเท็จอย่าดำเนินการตามคำสั่ง
ผังงานที่เกี่ยวข้องคือ:
หมายเหตุ:
ตอบ: การแสดงออกเชิงสัมพันธ์ต้องเป็นแบบบูลีนไม่ว่าจะง่ายหรือซับซ้อน
B: หากร่างคำสั่งควบคุมโดยคำสั่ง IF เป็นประโยคการจัดฟันสามารถละเว้นได้ หากเป็นหลายข้อความก็ไม่สามารถละเว้นได้ ขอแนะนำไม่ให้ละเว้น
C: โดยทั่วไปการพูด: หากมีรั้งซ้ายจะไม่มีเครื่องหมายอัฒภาคและถ้ามีเครื่องหมายอัฒภาคก็จะไม่มีรั้งซ้าย
A: กรณีพิเศษของ IF (a == b && a == c) {…}:
if (a == b) {} เขียนราวกับว่า (a = b) {}
หากเป็นประเภท int จะมีการรายงานข้อผิดพลาด ในเวลานี้มันหมายถึงการกำหนด B ให้กับ A และออกจาก A เพื่อตัดสินและ A เป็นประเภท int ดังนั้นจึงมีการรายงานข้อผิดพลาด
แต่ถ้า A และ B เป็นทั้งสองประเภทบูลีนก็ไม่มีปัญหา
2. รูปแบบที่สองของคำสั่ง IF: (เหมาะสำหรับการตัดสินสองครั้ง)
if (การแสดงออกเชิงสัมพันธ์) {Body 1;} else {Body Body 2;}กระบวนการดำเนินการ:
ขั้นแรกให้ตรวจสอบว่าการแสดงออกของความสัมพันธ์นั้นเป็นจริงหรือเท็จ: หากเป็นจริงให้ดำเนินการตามคำสั่ง 1; หากเป็นเท็จให้ดำเนินการตามคำสั่ง 2
ผังงานที่เกี่ยวข้องคือ:
เราได้อธิบายผู้ประกอบการที่ประกอบไปด้วยก่อนหน้านี้ หลังจากตัดสินจากการเปรียบเทียบผลลัพธ์จะได้รับ ดังนั้นสถานการณ์นี้จึงคล้ายกับรูปแบบที่สองของคำสั่ง IF ในบางกรณีพวกเขาควรจะสามารถแปลงซึ่งกันและกัน
รูปแบบที่สองของคำสั่ง IF และตัวดำเนินการ Ternary:
การดำเนินการทั้งหมดของผู้ประกอบการที่สองสามารถปรับปรุงได้โดยใช้หากมีคำสั่งมิฉะนั้นจะไม่ถูกต้อง
เมื่อไหร่ไม่ได้ผล? เมื่อร่างคำสั่งควบคุมโดยคำสั่ง IF เป็นคำสั่งเอาต์พุตมันไม่ทำงาน เนื่องจากผู้ให้บริการ Ternary เป็นผู้ให้บริการจึงต้องส่งคืนผลลัพธ์ แต่คำสั่งเอาต์พุตไม่สามารถส่งคืนได้
3. รูปแบบที่สามของคำสั่ง IF: (เหมาะสำหรับการตัดสินหลายครั้ง)
รูปแบบที่สามของคำสั่ง IF: ถ้า (นิพจน์เชิงสัมพันธ์ 1) {ร่างคำสั่ง 1; } อื่นถ้า (นิพจน์เชิงสัมพันธ์ 2) {ร่างคำสั่ง 2; } ... ... อื่น ๆ {คำสั่งร่างกาย n+1; -กระบวนการดำเนินการ:
ขั้นแรกให้กำหนดนิพจน์ความสัมพันธ์ 1 เพื่อดูว่าผลลัพธ์เป็นจริงหรือเท็จ
ถ้าเป็นจริงให้ดำเนินการตามคำสั่ง 1
หากเป็นเท็จให้ตัดสินนิพจน์ความสัมพันธ์ 2 ต่อไปเพื่อดูว่าผลลัพธ์นั้นเป็นจริงหรือเท็จ
ถ้าเป็นจริงให้ดำเนินการตามคำสั่ง 2
หากเป็นเท็จให้ตัดสินนิพจน์ความสัมพันธ์ต่อไป ... ดูว่าผลลัพธ์นั้นเป็นจริงหรือเท็จ
-
หากไม่มีการแสดงออกเชิงสัมพันธ์เป็นจริงจะมีการดำเนินการตามคำสั่ง N+1
ผังงานที่เกี่ยวข้องคือ:
ควรสังเกตว่ามีการดำเนินการเฉพาะหน่วยงานเท่านั้น
ตัวอย่างเช่น: ใช้การทำรังของคำสั่ง IF เพื่อรับค่าสูงสุดของข้อมูลทั้งสาม รหัสมีดังนี้:
// ใช้ int max1 ด้วยคำสั่ง IF; if (a> b) {max1 = a; } else {max1 = b; } system.out.println ("max1:"+max1);3. คำสั่งสวิตช์สำหรับการเลือกโครงสร้าง:
รูปแบบคำสั่งสวิตช์:
สวิตช์ (นิพจน์) {ค่าตัวพิมพ์ 1: ร่างคำสั่ง 1; หยุดพัก; ค่ากรณี 2: คำสั่งร่าง 2; หยุดพัก; ... ... ค่าเริ่มต้น: คำสั่ง Body N+1; หยุดพัก;}อธิบาย:
สวิตช์หมายความว่านี่คือคำสั่งสวิตช์
ค่าของการแสดงออก: ไบต์, สั้น, int, char (สามารถระบุได้หลังจาก JDK5 และสามารถเป็นสตริงหลังจาก JDK7) (ประโยคนี้อาจเป็นคำถามสัมภาษณ์)
กรณีตามด้วยค่าที่จะเปรียบเทียบกับนิพจน์
ส่วนของร่างกายคำสั่งอาจเป็นหนึ่งข้อความขึ้นไป
BREAK หมายถึงการขัดจังหวะสิ้นสุดและสามารถสิ้นสุดคำสั่งสวิตช์
คำสั่งเริ่มต้นระบุว่าเมื่อสถานการณ์ทั้งหมดไม่ตรงกันเนื้อหาจะถูกดำเนินการซึ่งคล้ายกับอื่น ๆ ของคำสั่ง IF
กระบวนการดำเนินการ:
ครั้งแรกคำนวณค่าของนิพจน์;
ประการที่สองเปรียบเทียบกับเคสตามลำดับ เมื่อมีค่าที่สอดคล้องกันแล้วคำสั่งที่เกี่ยวข้องจะถูกดำเนินการ ในระหว่างกระบวนการดำเนินการมันจะสิ้นสุดลงเมื่อพบหยุดพัก
ในที่สุดหากทุกกรณีไม่ตรงกับค่าของนิพจน์ส่วนคำสั่งเริ่มต้นจะถูกดำเนินการและโปรแกรมจะเสร็จสิ้น
แผนภูมิการไหล:
หมายเหตุ:
(1) กรณีสามารถเป็นค่าคงที่ไม่ใช่ตัวแปรและค่าหลังจากหลายกรณีไม่สามารถปรากฏได้เหมือนกัน
(2) สามารถละเว้นค่าเริ่มต้นได้หรือไม่?
สามารถละเว้นได้ ไม่แนะนำโดยทั่วไป เว้นแต่ว่าค่าที่ตัดสินจะได้รับการแก้ไข (นั่นคือกรณีที่เป็นไปได้ทั้งหมดจะถูกระบุไว้แล้วในกรณี)
(3) สามารถละเว้นได้หรือไม่?
สามารถละเว้นได้โดยทั่วไปไม่แนะนำ มิฉะนั้นผลลัพธ์อาจไม่ใช่สิ่งที่คุณต้องการและปรากฏการณ์จะเกิดขึ้น: การเจาะกรณี
(4) ตำแหน่งเริ่มต้นจะต้องอยู่ท้ายหรือไม่?
สามารถปรากฏขึ้นได้ทุกที่ในคำสั่ง Switch
(5) เงื่อนไขสิ้นสุดของคำสั่งสวิตช์:
สถานการณ์ A: มันจะสิ้นสุดลงเมื่อพบหยุดพักไม่ใช่เมื่อพบค่าเริ่มต้น
สถานการณ์ B: การดำเนินการสิ้นสุดลงในตอนท้ายของโปรแกรม
2. สถานการณ์ที่ใช้โดย IF และสวิตช์:
เมื่อทำการตัดสินเรามีสองตัวเลือก: หากคำสั่งและสลับคำสั่ง ดังนั้นเราควรเลือกคำสั่งใดที่จะใช้?
หากสถานการณ์การใช้งานคำสั่ง:
คำพิพากษาเกี่ยวกับผลลัพธ์ที่เป็นแบบบูลีน
การตัดสินในช่วง
การตัดสินของค่าคงที่หลายประการ
สถานการณ์สำหรับการใช้คำสั่งสวิตช์:
การตัดสินของค่าคงที่หลายประการ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น