ในบทความนี้ เราจะเข้าใจวิธีการกลับประโยคโดยใช้การเรียกซ้ำ ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเองหลายครั้งจนกระทั่งตรงตามเงื่อนไขที่กำหนด
ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเองหลายครั้งจนกระทั่งตรงตามเงื่อนไขที่กำหนด
การเรียกซ้ำเป็นกระบวนการของการทำซ้ำรายการในลักษณะที่คล้ายคลึงกัน ในภาษาโปรแกรม หากโปรแกรมอนุญาตให้คุณเรียกใช้ฟังก์ชันภายในฟังก์ชันเดียวกันได้ จะเรียกว่าการเรียกใช้ฟังก์ชันแบบเรียกซ้ำ
ภาษาโปรแกรมหลายภาษาใช้การเรียกซ้ำโดยใช้สแต็ค โดยทั่วไป เมื่อใดก็ตามที่ฟังก์ชัน (ผู้โทร) เรียกใช้ฟังก์ชันอื่น (callee) หรือเรียกตัวเองว่าเป็นผู้รับสาย ฟังก์ชันผู้โทรจะโอนการควบคุมการดำเนินการไปยังผู้รับสาย ขั้นตอนการโอนนี้อาจเกี่ยวข้องกับข้อมูลบางส่วนที่ต้องส่งผ่านจากผู้โทรไปยังผู้รับสาย
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ป้อนข้อมูล
สมมติว่าข้อมูลที่เราป้อนคือ −
Enter the sentence : Have a nice evening
ผลผลิต
ผลลัพธ์ที่ต้องการจะเป็น −
The reversed input is: gnineve ecin a evaH
อัลกอริทึม
Step 1 - START Step 2 - Declare two string values namely my_input and my_result Step 3 - Read the required values from the user/ define the values Step 4 - A recursive function ‘reverseString is defined which takes an string as input and returns the character at the last position. Step 5 - The function is called recursively until the value of ‘my_input’ is not an empty string. Step 6 - The recursive function is called and the value ‘my_input’ is passed to it. Store the return value Step 7 - Display the result Step 8 - Stop
ตัวอย่างที่ 1
ที่นี่ ผู้ใช้ป้อนอินพุตตามข้อความแจ้ง คุณสามารถลองใช้ตัวอย่างนี้ในเครื่องมือกราวด์ของเรา .
import java.util.Scanner; public class Reverse { public static void main(String[] args) { String my_input, my_result; System.out.println("Required packages have been imported"); Scanner my_scanner = new Scanner(System.in); System.out.println("A reader object has been defined "); System.out.print("Enter the sentence : "); my_input = my_scanner.nextLine(); my_result = reverseString(my_input); System.out.println("The reversed input is: " + my_result); } public static String reverseString(String my_input) { if (my_input.isEmpty()) return my_input; return reverseString(my_input.substring(1)) + my_input.charAt(0); } }
ผลลัพธ์
Required packages have been imported A reader object has been defined Enter the sentence : Have a nice evening The reversed input is: gnineve ecin a evaH
ตัวอย่างที่ 2
ในที่นี้ มีการกำหนดจำนวนเต็มก่อนหน้านี้ และเข้าถึงและแสดงค่าบนคอนโซล
public class Reverse { public static void main(String[] args) { String my_input, my_result; my_input = "Have a nice evening"; System.out.println("The string is defined as :" +my_input); my_result = reverseString(my_input); System.out.println("The reversed input is: " + my_result); } public static String reverseString(String my_input) { if (my_input.isEmpty()) return my_input; return reverseString(my_input.substring(1)) + my_input.charAt(0); } }
ผลลัพธ์
The string is defined as :Have a nice evening The reversed input is: gnineve ecin a evaH