ตัวอย่างของบทความนี้วิเคราะห์หลักการของ Java แบ่งปันสำหรับทุกคนสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
คำอธิบาย: โปรแกรมเรียกทักษะการเขียนโปรแกรมของตัวเองเรียกว่าการเรียกซ้ำ
โปรแกรมเรียกทักษะการเขียนโปรแกรมของตัวเองเรียกว่าการเรียกซ้ำ เรียกซ้ำเป็นอัลกอริทึมที่ใช้กันอย่างแพร่หลายในภาษาการเขียนโปรแกรม กระบวนการหนึ่งหรือฟังก์ชั่นมีวิธีการที่เรียกตัวเองโดยตรงหรือโดยอ้อมในคำจำกัดความหรือคำแนะนำ เพื่ออธิบายการคำนวณซ้ำหลายครั้งที่จำเป็นสำหรับกระบวนการแก้ปัญหาซึ่งจะช่วยลดรหัสของโปรแกรมได้อย่างมาก ความสามารถในการกลับมาอีกครั้งคือการกำหนดคอลเลกชันของวัตถุที่ไม่ จำกัด ด้วยประโยคที่ จำกัด
สามเงื่อนไขของการเรียกซ้ำ:
สภาพชายแดนแบบเรียกซ้ำกลุ่มขั้นสูงกลับไปยังเซ็กเมนต์การส่งคืนเมื่อเงื่อนไขขอบเขตไม่ตรงไปตรงมา
มีการอธิบายตัวอย่างสองโปรแกรมต่อไปนี้:
ใช้รหัส Java เพื่อค้นหาคำสั่งซื้อ 5 (5 ขั้นตอนของ 5*4*3*2*1)
/*** คำนวณ 5 (ผลลัพธ์ = 5*4*3*2*1)*@ผู้แต่ง pplsunny ****/คลาสสาธารณะ test01 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.out.prin tln ( tln (f (5));} สาธารณะคงที่ int f (int n) {ถ้า (1 == n) return 1;
ในคำถามนี้วิเคราะห์ตามเงื่อนไขสามประการของการเรียกซ้ำ:
(1) เงื่อนไขขอบเขต: ตัวคูณขั้นตอนทวีคูณเป็นหมายเลขสุดท้ายนั่นคือเมื่อ 1, return 1, การดำเนินการโปรแกรมไปยังจุดสิ้นสุด;
(2) ส่วนด้านหน้าแบบเรียกซ้ำ: เมื่อพารามิเตอร์ปัจจุบันไม่เท่ากับ 1 ให้เรียกตัวเองต่อไป
(3) ส่วนการส่งคืนแบบเรียกซ้ำ: เริ่มจากจำนวนสูงสุดหากพารามิเตอร์ปัจจุบันคือ 5 ดังนั้น 5*4, 5*(5-1) นั่นคือ N*(N-1)
ใช้รหัส Java เพื่อค้นหาหมายเลข: 1, 1, 2, 3, 5, 8 ...... 40th Number
/ ** * ค้นหาหมายเลข: 1,1,2,3,5,8 ... หมายเลข 40 * @author pplsunny * */ คลาสสาธารณะ test_fibonacci {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.out println (f (f (6));} สาธารณะคงที่ int f (int n) {if (1 == n || 2 == n) return 1; eltle return f (n-) + f (n-2) ;}}
ความก้าวหน้าของคำถามนี้คือ: เริ่มต้นจากตัวเลขที่ 3 ตัวเลขคือผลรวมของสองหลักแรก ในการคำนวณค่าของตัวเลขคุณต้องคำนวณหมายเลขเป็นพารามิเตอร์
(1) ก่อนอื่นเมื่อจำนวนตัวเลขคือ 1 และ 2 ค่าปัจจุบันที่ส่งคืนควรเป็น 1;
(2) จากนั้นเมื่อจำนวนตัวเลขคือ 3 ค่าส่งคืนควรเป็น = 2 = 1+1;
เมื่อตัวเลขคือ 4 ค่าส่งคืน = 3 = 2+1;
เมื่อตัวเลขคือ 5 ค่าส่งคืน = 5 = 3+2;
เมื่อหมายเลขคือ 6 ค่าส่งคืน = 8 = 5+3;
-
(3) จาก (2) เมื่อได้เรียนรู้ว่าเมื่อมีมากกว่าหรือเท่ากับ 3 ค่าของดิจิตอลปัจจุบัน (n) = F (N-1)+F (N-2)
ประสบการณ์: ผู้เริ่มต้นบางคนอาจคิดว่าการเรียกซ้ำคือการเรียกตัวเองว่ามันจะไม่เป็นวัฏจักรที่ตายแล้ว ใช่ถ้าการเขียนแบบเรียกซ้ำไม่มีเหตุผลมันเป็นวัฏจักรแห่งความตาย อย่างไรก็ตามหากการเขียนมีความสมเหตุสมผลและ "เงื่อนไขขอบเขต" เมื่อโปรแกรมถูกดำเนินการจนถึงตอนท้ายมันจะส่งคืนเลเยอร์โดยเลเยอร์ เช่นเดียวกับที่เราปีนภูเขาเราปีนขึ้นไปบนถนนบนภูเขาเพื่อปีนเลเยอร์หลังจากเลเยอร์ แต่ถ้าคุณไปถึงยอดเขาปีนขึ้นไปบนบันไดเมื่อคุณขึ้นไปบนภูเขา
หวังว่าบทความนี้จะเป็นประโยชน์กับการออกแบบโปรแกรม Java ของทุกคน