Java

Enhanced for loop এবং ভেরিয়েবল লেংথ আর্গুমেন্ট

আমাদের অনেক সময় একটি এরের ভিতরের সকল ইনডেক্সকে পরস্পরের সাথে যোগ করার দরকার হয়ে থাকে। আমরা এটিকে নরমাল ভাবেই করতে পারি। কিন্তু আমরা আজ এক নতুন পদ্ধতিতে তা সমাধান করার চেষ্টা করবো লুপের সাহায্যে।

enhanced loop

উপরের এই এক্সামপ্লের লুপটিকে ভাল করে লক্ষ্য করে দেখ আমরা কি করেছি।

আমরা একটি অস্থায়ী আইডেন্টিফায়ার ডিক্লেয়ার করেছি। তারপর কোলন তারপর এরে এর নামটি আমরা লিখেছি। মূলত এই কাজ এরে ছাড়াও অন্য কাজেও ব্যাবহার করা যায়। তবে এখানে আমরা এরে নিয়েই এটি বুঝানোর চেষ্টা করছি।

এখানের x ভেরিয়েবলটি তার কোলনের পরের ভেরিয়েবলের সকল ভেরিয়েবল hold বা ধরে রাখে। এটিই মূলত তার কাজ। এখানে array নামক এরে এর সকল ভেরিয়েবল xলুপের সাহায্যে execute  করে থাকে। সাধারণ নিয়মে আমরা মূলত I  দ্বারা একটী লুপ চালিয়ে তা total+= array[i] এইভাবে যোগ করে থাকি , কিন্তু এখানে আমরা শুধু x কেই লিখেছি, যা কিনা array[i] এর মত কাজ করে।

এখানে মূলত লুপকে সংক্ষেপে প্রকাশ করা হয়, মানে এখানে for লুপকে মডিফাই করা হয়েছে। তাই একে enhanced loop বলে

ভেরিয়েবল লেংথ আর্গুমেন্টঃ

এটি একটি ভেরিয়েবল লেংথ বুঝার সহজ উদাহরণ।

প্রথমে মনে কর, তুমি জানোনা তুমি কত সংখ্যক সংখ্যা নিয়ে গড় বের করতে চাও। তাই তুমি তোমার মেথডে কতটি আরগুমেন্ট দিবে তা নির্ণয় করতে পারোনি। সেই ক্ষেত্রে আমরা অনির্দিষ্ট আরগুমেন্ট এর জন্যে নিম্নোক্ত উপায়ে কাজ করে গড় বের করতে পারি।

variable length argument

আমরা একটি মেথড তৈরি করলাম আমাদের কিছু সংখার এভারেজ বের করার জন্যে। কিন্তু আমরা কি ৫ টা,৪ টা,২০০ টা,৩৬ টা ভেলু নিয়ে কাজ করবো তা জানিনা, তাই আমরা মেথডটি public static int average(int…numbers) এই ভাবে লিখে বুঝে পারিযে আমরা জানিনা কত সংখ্যক ভেলু নিয়ে বা আরগুমেন্ট নিয়ে আমরা কাজ করবো।

average(int…numbers)এখানের int এর পর ৩ টা  ডট দ্বারা আমরা জানিনা এই কথাটি ই বুঝানো হয়।

তারপর আমরা ইনহেন্স লুপের ভিতর x দ্বারা আরগুমেন্ট গুলোকে ধরে রেখে total এর সাথে যোগ করতে থাকলাম।

পরে আমরা রিটার্ন এর মাঝে টোটাল কে number.length দ্বারা ভাগ করে গড় বের করে কলারের কাছে পাঠিয়ে দিলাম আমাদের কাঙ্ক্ষিত ভেলুটি।

এখানে number.length দ্বারা মোট কতটি সংখ্যা নিয়ে কাজ করেছি তার সংখ্যাকেই প্রকাশ করে। কেননা গড় বের করতে আমাদের তা প্রয়োজন।

ভুল হলে আশা করি ধরিয়ে দিয়ে সাহায্য করবেন। ভুল হতেই পারে। তবে সর্বাতক ভুল না হওয়ার চেষ্টা করা হয়েছে।

ashiq

CSE at IIUC

 

Leave a Reply

Your email address will not be published.

nineteen + 1 =