এটি বুলিয়ান হিসাবে পূর্ণসংখ্যা মানগুলি ব্যবহার করার ইতিহাস থেকে আসে।
যদি x
এটি হয় int
তবে আমি এটি বুলিয়ান হিসাবে ব্যবহার করছি ততক্ষণে if(x)...
ইনক্রিমেন্টিংয়ের অর্থ হ'ল অপারেশনের আগে এর সত্যের মূল্য যাই হোক না কেন, এর true
পরে এর সত্য-মূল্য থাকবে (উপচে পড়া ব্যতীত)।
তবে, --
প্রদত্ত জ্ঞানের কেবলমাত্র সত্য মানের মূল্য সম্পর্কে ভবিষ্যদ্বাণী করা অসম্ভব x
, কারণ এটির ফলাফল হতে পারে false
(যদি অবিচ্ছেদ্য মান 1 হয়) বা true
(যদি অবিচ্ছেদ্য মান অন্য কিছু হয় - বিশেষত এর মধ্যে 0 [ false
] এবং 2 বা আরও [ true
])।
একটি সংক্ষিপ্ত হাত হিসাবে ++
কাজ, এবং --
না।
++
এটির সাথে সামঞ্জস্যের জন্য বুলগুলিতে অনুমতি দেওয়া হয় তবে এর ব্যবহারটি স্ট্যান্ডার্ডে অবহেলা করা হয়।
এটি ধরে নিয়েছে যে আমি কেবলx
একটি বুলিয়ান হিসাবে ব্যবহার করি , যার অর্থ এটি না হওয়া পর্যন্ত ওভারফ্লো হতে পারে না যতক্ষণ না আমি ++
নিজের নিজের উপরের প্রবাহের জন্য প্রায়শই যথেষ্ট কাজ করি । এমনকি চরটি যেমন টাইপ হিসাবে ব্যবহৃত হয় এবং CHAR_BITS
5 এর মতো কম কিছু হয়, এর আগে 32 বার এটি আর কাজ করে না (এটি এখনও একটি খারাপ অনুশীলন হওয়ার পক্ষে যথেষ্ট যুক্তিযুক্ত, আমি অনুশীলনকে রক্ষা করছি না, কেবল এটি কেন কাজ করে তা ব্যাখ্যা করে) একটি 32-বিটের int
জন্য অবশ্যই অবশ্যই ++
এটি একটি সমস্যা হওয়ার আগে 2 ^ 32 বার ব্যবহার করতে হবে । সঙ্গে --
যদিও এটি শুধুমাত্র পরিণাম ডেকে আনবে false
যদি আমি মান 1 দিয়ে শুরু true
, অথবা 0 দিয়ে শুরু এবং ব্যবহৃত ++
অবিকল আগে একবার।
এটি ভিন্ন হয় যদি আমরা 0 এর নীচে কয়েকটি মাত্রার সাথে শুরু করি তবে প্রকৃতপক্ষে, আমরা ++
এর পরে false
মান হিসাবে ফলাফল পেতে চাই:
int x = -5;
while(++x)
doSomething(x);
যাইহোক, এই উদাহরণটি শর্তযুক্ত ব্যতীত অন্য যে x
কোনও int
জায়গায় হিসাবে বিবেচনা করে, তাই এটি এর সমতুল্য:
int x = -5;
while(++x != 0)
doSomething(x);
যা কেবলমাত্র x
বুলিয়ান হিসাবে ব্যবহারের চেয়ে আলাদা ।