جاوا

جلسه ۵۷: تبدیل کد تکراری به کد بازگشتی در جاوا

در این جلسه می آموزد که چگونه یک کد تکراری را به یک کد بازگشتی تغییر دهید. موارد زیر را بیان خواهیم کرد:
    • شمارش تعداد ارقام یک عدد
      • کد
      • تبدیل کد
        • گام اول
        • گام دوم
کلید تبدیل کد تکراری به کد بازگشتی یافتن خطوط خاصی از کد است که در این دو پیاده سازی تغییر شکل می یابد.

شمارش تعداد ارقام یک عدد

در این مثال وقتی عددی به برنامه داده می شود ، کد باید تعداد رقم موجود در آن عدد را چاپ کند. دو پیاده سازی از این برنامه در زیر نشان داده شده است. ابتدا دو کد را مرور کرده و تفاوت ها را پیدا کنید. سپس برای درک بهتر این روند تبدیل، توضیحات را بخوانید. تصویر زیر ورودی و خروجی برنامه را نشان می دهد.

در قطعه کدهای زیر دو شیوه پیاده سازی و در ادامه توضیحات مربوطه را می بینید:

کد

class IterativeClass {
    public static int countDigits(int num) {
      int count = 0;
      while (num > 0) {
        num = num / 10;
        count++;
      }
      return count;
    }

    public static void main( String args[] ) {
      
        int input = 1435043;
        int numDigits = countDigits(input);
        System.out.println("Number of digits in " + input + " = " + numDigits);
    }
}
class RecursiveClass {
    public static int countDigits(int num) {
      if (num <= 1) {
        return 1;
      }
      else {
        return 1 + countDigits(num/10);
      }
    }

    public static void main( String args[] ) {
      
        int input = 14333220;
        int numDigits = countDigits(input);
        System.out.println("Number of digits in " + input + " = " + numDigits);
    }
}

تبدیل کد

گام اول

اولین قدم شناسایی حلقه در کد تکراری است. این حلقه ویژگی خاصی دارد: یک متغیر عدد صحیح را اصلاح می کند که در نهایت از طریق متد بازگردانده می شود. حلقه while و دستور بازگشت از خط ۴ تا خط ۸ هستند. توجه داشته باشید که اصلاح در حلقه از خط ۴ تا خط ۷ اتفاق می افتد. این حلقه ای است که به آن می پردازیم.

گام دوم

مرحله دوم این است که شرط حلقه در این حلقه تبدیل به حالت پایه در کد بازگشتی می شود. به خط ۳ کد بازگشتی نگاه کنید. این حالت پایه کد ما را مشخص می کند در جایی که می گوید این متد باید ۱ را برگرداند زمانی که num کمتر یا برابر با ۱ باشد. همچنین ، در مورد کد تکراری ، متغیر num در داخل حلقه اصلاح می شود و حلقه while تا زمانی که num بزرگتر از ۰ باشد ، ادامه می یابد. هر دو این ها شرایط پایان دهنده هستند و در نهایت خروجی را برمی گردانند. در خط ۵ و ۶ در کد تکراری ، num بر ۱۰ تقسیم می شود و متغیر count یک واحد افزایش می یابد. تقسیم num بر ۱۰ آخرین رقم num را حذف می کند و سپس count را یک واحد افزایش می دهد تا این رقم حذف شده را بشمارد. به همین ترتیب ، در کد بازگشتی در خط ۷ ، این قسمت از کد ۱ را برمی گرداند و سپس به صورت بازگشتی متد countDigits را با آرگومان n/10 فراخوانی می کند تا تمام رقم ها تا زمان رسیدن به شرایط پایه شمارش شوند. اکنون که یاد گرفتید یک کد تکراری را به یک کد بازگشتی تغییر دهید ، در جلسه بعدی آزمونی برای شما آماده کرده ایم تا خودتان را بسنجید و مروری بر مباحث مطرح شده در زمینه تکرار و بازگشت داشته باشید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا