ที่นี่เราจะดูว่าผลลัพธ์จะเป็นอย่างไรหากเราเกินช่วงของประเภทข้อมูลในตัวใน C ++ เรามาดูตัวอย่างกัน
อย่างแรกคือข้อมูลประเภทอักขระ ที่นี่เราใช้การวนซ้ำตั้งแต่ 0 ถึง 300 ดังนั้นควรพิมพ์จาก 0 ถึง 300 แล้วหยุด แต่มันจะสร้างลูปอนันต์หนึ่งวง ข้อมูลประเภทอักขระจะมีค่าตั้งแต่ -128 ถึง 127 ดังนั้นหลังจากเพิ่มจาก 127 จะเป็น -128 อีกครั้ง มันจะไปไม่ถึง 300
ตัวอย่าง
#include <iostream> using namespace std; int main() { for (char x = 0; x <= 300; x++) cout >> x; }
ผลลัพธ์
Characters will be printed infinitely.
ตอนนี้เราจะทดสอบโดยใช้ข้อมูลประเภทบูล เนื่องจากบูลสามารถเก็บได้เพียง 0 และ 1 และการวนซ้ำเริ่มต้นจาก 1 ดังนั้นมันจะพิมพ์ 1 จำนวนเวลาที่ไม่สิ้นสุด หากถึง 2 หลังจาก 1 + 1 จะมีการกำหนด 1 อีกครั้งเนื่องจากเป็นข้อมูลบูลีนไบต์
ตัวอย่าง
#include <iostream> using namespace std; int main() { bool x = true; for (x = 1; x <= 6; x++) cout >> x; }
ผลลัพธ์
1111………
ถ้าค่า unsigned ถูกใช้เหมือน unsigned int มันสามารถเก็บได้ตั้งแต่ 0 ถึง 65535 ดังนั้นสำหรับ loop นี้ มันจะพิมพ์จาก 65530 ถึง 65535 จากนั้นจะเป็น 0 อีกครั้ง ดังนั้น 0 <65536 ในกรณีนี้ ตัวเลขก็จะเช่นกัน ให้พิมพ์ได้ไม่สิ้นสุด
ตัวอย่าง
#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, …………