যদি আপনার নিচের মত একটি স্টেটমেন্ট থাকে:
while (expression);
তবে এক্সপ্রেশন true বা false যেকোনো হোক, while লুপ চলবে। কিন্তু আপনি যদি নিচের মত লিখেন:
if (expression);
তবে এক্সপ্রেশন true বা false যেকোনো হোক, স্টেটমেন্টটি একবার রান হবে। এর কারণ হলো if এবং while-এর সিনট্যাক্স:
if (<expr>) <statement> // অথবা while (<expr>) <statement>
সেজন্য <statement> শুধু তখন এক্সিকিউট হবে যখন <expr> true যাবে। while-এ এটি ইনফিনিট লুপে ঢুকে যাবে।
প্রশ্ন হলো কোন <statement> এটি এক্সিকিউট করে। যদি ব্রেস {} না থাকে তবে পরবর্তী স্টেটমেন্ট ; দিয়ে টার্মিনেট হবে এমনকি সেই স্টেটমেন্ট খালি হোক। মনে রাখবেন খালি স্টেটমেন্ট বৈধ।
if (<expr>) /* Empty Statement */; while (<expr>) /* Empty Statement */;
উভয় ক্ষেত্রেই, এক্সপ্রেশন ইভ্যালুয়েট হওয়ার পরে কিছু এক্সিকিউট হচ্ছে না। যদিও while ইনফিনিট লুপে যেতে পারে। নোট: '{}' একটি স্টেটমেন্ট-ব্লক (একটি স্টেটমেন্টের ধরন যাতে অন্যান্য স্টেটমেন্টের তালিকা থাকে)।