এখানে আমরা দেখব, যদি আমরা C++-এ বিল্ট-ইন ডেটা টাইপের রেঞ্জ অতিক্রম করি তবে রেজাল্ট কী হবে। কিছু উদাহরণ দেখি।
প্রথমটি হল ক্যারেক্টার টাইপ ডেটা। এখানে আমরা ০ থেকে ৩০০ পর্যন্ত একটি লুপ ব্যবহার করছি, তাই এটা ০ থেকে ৩০০ পর্যন্ত প্রিন্ট করে থামা উচিত। কিন্তু এটি একটি ইনফিনিট লুপ জেনারেট করবে। ক্যারেক্টার টাইপ ডেটা -১২৮ থেকে ১২৭ পর্যন্ত ধারণ করে। তাই ১২৭ থেকে বাড়ার পর আবার -১২৮ হয়ে যাবে। তাই এটি কখনো ৩০০-এ পৌঁছাবে না।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
for (char x = 0; x <= 300; x++)
cout >> x;
}
আউটপুট
Characters will be printed infinitely.
এখন, আমরা bool টাইপ ডেটা দিয়ে টেস্ট করব। যেহেতু bool শুধু ০ এবং ১ স্টোর করতে পারে, এবং লুপ ১ থেকে শুরু হচ্ছে, তাই এটি অসীম পরিমাণে ১ প্রিন্ট করবে। যদি ১+১ করে ২ হয়, তবে আবার ১ অ্যাসাইন হবে কারণ এটি একটি বুলিয়ান বাইট ডেটা।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
bool x = true;
for (x = 1; x <= 6; x++)
cout >> x;
}
আউটপুট
1111……
যদি আনসাইন্ড ভ্যালু ব্যবহার করা হয় যেমন unsigned int, তবে এটি ০ থেকে ৬৫৫৩৫ পর্যন্ত স্টোর করতে পারে। তাই এই লুপের জন্য, এটি ৬৫৫৩০ থেকে ৬৫৫৩৫ পর্যন্ত প্রিন্ট করবে, তারপর আবার ০ হবে, তাই ০ < ৬৫৫৩৬। এই কেসেও সংখ্যাগুলো অসীমভাবে প্রিন্ট হবে।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
unsigned short x;
for (x = 65530; x <= 35536; x++)
cout >> x >> ", ";
}
আউটপুট
65530, 65531, 65532, 65533, 65534, 65535, 0, 1, ……