এ্যারে (Array):


ভেরিয়েবল তো একটা বালতির মতো বা কনটেইনার তাই না? যাতে ডাটা রাখা যায়। ধরো তোমার কাছে কিছু ডাটা আছে এরকম: Water, Diesel, Petroleum, Juice, Cold Drinks

এগুলোকে যদি ভেরিয়েবল এর মধ্যে রাখতে বলা হয় তুমি কি করবে। চলো দেখি।




আউটপুট:

দেখো 5 টা লাইন কোড লিখতে হচ্ছে ডাটাগুলো রাখার জন্য। এরকম যদি 500 টা ডাটা থাকে তোমার কাছে তাহলে 500 লাইন কোড লিখতে হবে।

কিন্তু এ্যারে(Array) তোমাকে এই কষ্ট থেকে বাঁচিয়ে দিতে পারে।

এ্যারেও আসলে ভেরিয়েবল এর মতোই। কিন্তু এর সুবিধা হলো এখানে একটা ভেরিয়েবল এর মধ্যেই একই টাইপের অনেক অনেক ডাটা রাখা যায়।

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




আউটপুট:

আচ্ছা আমরা সুবিধাটা বুঝলাম এখন সিনট্যাক্সটা দেখি। এ্যারেতে ডাটাটা রাখার সিনট্যাক্স হলো এরকম।

data_type array_name[] = {data1, data2, data3,….datan};

এখানে তুমি n সংখ্যক অর্থাৎ যতগুলো ইচ্ছা ডাটা রাখতে পারবে।

কিন্তু শর্ত হলো একটি এ্যারেতে তোমাকে অবশ্যই একই ধরণের ডাটা রাখতে হবে। একটা এ্যারেতে মাল্টিপল টাইপের ডাটা রাখতে পারবে না। এই ব্যাপারটা মনে রাখা খুবই গুরুত্বপূর্ণ।

যেমন দেখো:




আউটপুট:

এ্যারের টাইপ বলেছি String কিন্তু একটা ডাটা অন্য টাইপের মানে ইন্টিজার রেখেছি আর সাথে সাথে এরর(Error) দেখাচ্ছে।

এবার এ্যারেতে ডাটা রাখার আরেকটি সুবিধা দেখি।

ধরো তুমি পাঁচটা ভেরিয়েবলে পাঁচটা ডাটা রেখেছ। পাঁচটাকে এখন প্রিন্ট করতে চাচ্ছ। তাহলে কি করবে? এরকম করতে হবে না?




আউটপুট:

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




আউটপুট:

ব্যাপারটা আরো সহজ তাই না?

কিন্তু এখানে আবার নতুন প্রশ্ন। তাহলে ইনডেক্স আবার কি?

ধরো তুমি একটা টেবিল বানালে এরকম:

1

Water

2

Diesel

3

Petroleum

4

Juice

5

Cold Drinks

এখানে যে বাম পাশে কলামে যে 1 থেকে 5 আছে এটাই হচ্ছে ইনডেক্স। যেমন Juice এর ইনডেক্স হচ্ছে 4।

এরকম তুমি যখন এ্যারেতে ডাটা রাখো তখন সেটা অটোমেটিক ইনডেক্স তৈরী করে নেয় প্রত্যেকটি ডাটার জন্য। যাতে প্রত্যেকটি ডাটাকে আলাদাভাবে খুঁজে পাওয়া যায়। এই টেবিলে যেমন তুমি Juice কে খুঁজে পাবার জন্য 4 ব্যবহার করেছ।

কিন্তু এ্যারের ইনডেক্সে সামান্য একটি পার্থক্য আছে। তুমি এখানে শুরু করেছ 1 থেকে কিন্তু এ্যারেতে যখন ডাটা রাখো তার ইনডেক্সিং শুরু হয় 0 থেকে। যেমন প্রথম ডাটা Water এর ইনডেক্স হচ্ছে 0। আর সর্ব শেষ ডাটাটির ইনডেক্স হয় মোট ডাটার পরিমানের চেয়ে 1 কম। যেমন এ্যারেতে Cold Drinks ডাটাটির ইনডেক্স হচ্ছে 4।







অর্থাৎ এভাবে:

0

Water

1

Diesel

2

Petroleum

3

Juice

4

Cold Drinks



এ্যারেতে ডাটা রাখার আরো একটি মজার সুবিধা হচ্ছে মাত্র তিন লাইন কোড লিখেই একটা এ্যারেতে রাখা হাজারটি ডাটা তুমি দেখতে পারবে। এটা আমরা পরে লুপিং(Looping) চ্যাপ্টারে foreach লুপে গিয়ে দেখবো।

উপরের উদাহরণে আমরা এ্যারেতে ডাটা রাখার একটি নিয়ম দেখেছি। এভাবে আমরা এ্যারেতে ডাটা রেখেছিলাম।




আউটপুট:

এ্যারেতে অন্য আরেকটা উপায়েও ডাটা রাখা যায়। নিয়মটা হলো এরকম:




আউটপুট:

এটা আসলে আমরা এ্যারেটি ডিক্লেয়ার করলাম। আর ডিক্লেয়ার করার সময় এ্যারেটিতে কি পরিমান ডাটা রাখবো, এক্ষেত্রে 5 টি, এটাও বলে দিতে হবে।

এখন এই এ্যারেতে আমরা ডাটা রাখবো এভাবে।




আউটপুট:

আমরা আগেই জেনেছি যে এ্যারেতে ডাটা ইনডেক্সিং শুরু হয় 0 থেকে সুতরাং আমাদের 0 থেকে ডাটা রাখা শুরু করতে হবে। এ্যারেতে ডাটা রাখার জন্য আগের পন্থা আর এই পন্থা একই। শুধু একটা পার্থক্য আছে। সেটা হলো এ্যারেটি ডিক্লেয়ার করার সময় তুমি কত পরিমান ডাটা রাখবে এই এ্যারেতে তা তুমি আগেই বলে দিচ্ছো অর্থাৎ এই উদাহরণে 5। এবং ডিক্লেয়ার করার সময় যে পরিমানটা বলে দেবে ডাটা রাখার সময় তার বেশি ডাটা তুমি এ্যারেতে রাখতে পারবে না।