1: การใช้งานตารางสูตรคูณ 99 แบบธรรมดานั้นง่ายเกินไป แม้แต่โปรแกรมเมอร์ก็สามารถทำได้ การใช้งานมีดังนี้:
แพ็คเกจ test.ms; คลาสสาธารณะ Test99 { โมฆะสาธารณะคงหลัก (สตริง [] args) { สำหรับ (int i = 1; i <= 9; i ++) { สำหรับ (int j = 1; j <= i; j ++) { System.out.print(j+" * "+i+ " = "+(i*j) +" "); } System.out.println();
2: ใช้การเรียกซ้ำเพื่อใช้ตารางสูตรคูณ 99
รหัสมีดังนี้:
package test.ms; public class MultiTable { โมฆะสาธารณะคงที่ main (String args []) { m (9); } /** * พิมพ์ตารางสูตรคูณ * @param i */ โมฆะสาธารณะคงที่ m (int i) { if (i == 1) { System.out.println("1*1=1 "); } อื่น ๆ { m(i - 1); for (int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + j * i + " "); } System.out.println();
เรียกไอคอนซ้ำ:
การเรียกเมธอดแต่ละครั้งจะสร้างเฟรมสแต็กและผลักมันลงบนเมธอดสแต็ก เมื่อมีการเรียกซ้ำ กรอบสแต็กในสแต็กวิธีการจะมีลักษณะคล้ายกับภาพด้านบน
เป็นการง่ายกว่าที่จะลบความสัมพันธ์อ้างอิงของเฟรมสแต็กในวิธีการ: ดังแสดงในรูปต่อไปนี้:
การดำเนินการขั้นสุดท้ายของการเรียกเมธอดที่เกี่ยวข้องนั้นง่ายขึ้นดังแสดงในรูปด้านบน โปรดทราบว่า i มีการเปลี่ยนแปลงและ j เริ่มจาก 1 ในแต่ละครั้ง จากนั้นเพิ่มขึ้นจนกระทั่งเท่ากับ i
ด้วยวิธีนี้ หลังจากที่รูปภาพด้านบนหลุดออกจากสแต็ก จะได้ตารางสูตรคูณ 99 ตาราง:
สรุป:
การเปรียบเทียบการซ้อนสำหรับลูปและการเรียกซ้ำ:
สแต็กส่วนใหญ่จะใช้เพื่อจัดเก็บเฟรมสแต็ก ทุกครั้งที่ดำเนินการเมธอด การดำเนินการพุชจะเกิดขึ้น ดังนั้น สแต็กเฟรมจะถูกสร้างขึ้นมากขึ้นเมื่อใช้การเรียกซ้ำจะส่งผลต่อหน่วยความจำและใช้หน่วยความจำจำนวนมาก for loop จะดำเนินการ มีวิธีการหนึ่งที่จะดัน stack frame หนึ่งครั้ง และมีเพียง stack frame เดียวเท่านั้น จึงช่วยประหยัดหน่วยความจำ
ยินดียกนิ้วให้ครับ. จนหมดสติไป..