অন্যান্য উত্তর এবং মন্তব্যগুলি বিভিন্ন উপায়ে কল করে যে এটি একটি ভয়াবহ, বিভ্রান্তিকর এবং খারাপভাবে লিখিত প্রশ্ন। তবে আরও একটি সমস্যা রয়েছে যা এখনও অন্য কেউ সনাক্ত করতে পারেনি। প্রশ্ন হচ্ছে:
একটি কার্য ঘোষণার পরে একটি সেমিকোলন (';') দরকার হয় না। সত্য অথবা মিথ্যা.
ঠিক আছে, আসুন একটি ফাংশন ঘোষণা দেখুন:
int func(); /* */
/* ^ */
/* | */
/* That whitespace is "after the function declaration". */
পুরো বিষয়টি হ'ল ঘোষণা । ঘোষণা করা হয় না int func()
এবং তারপর দ্বারা অনুসরণ একটি ;
। ঘোষণাপত্রটি হ'ল int func();
এবং তারপরেই সাদা স্থান।
সুতরাং, প্রশ্নটি হল: ঘোষণার পরে একটি সেমিকোলন প্রয়োজন ? অবশ্যই না. ঘোষণাপত্রে এর মধ্যে ইতিমধ্যে একটি সেমিকোলন রয়েছে যা এটি বন্ধ করে দিয়েছে। ঘোষণার পরে একটি সেমিকোলন অর্থহীন হবে। বিপরীতে, একটি কার্য ঘোষণার পরে একটিint func(); ;
সেমিকোলন হবে ।
প্রশ্নটি প্রায় অবশ্যই প্রশ্নটি জিজ্ঞাসা করার উদ্দেশ্যেই করা হয়েছিল "সত্য বা মিথ্যা: একটি ফাংশন ঘোষণার সর্বশেষ টোকেন সর্বদা একটি সেমিকোলন" তবে এটি যে প্রশ্নটি তারা লিখেছিল তা নয়, কারণ কুইজের লেখক সমস্যাটি সম্পর্কে স্পষ্টভাবে ভাবছিলেন না।
আমার পরামর্শ হ'ল প্রোগ্রামিং ভাষার কুইজগুলি পুরোপুরি এড়ানো avoid তারা বেশ ভয়ঙ্কর।
মজার ঘটনা, যখন আমরা বিষয়টিতে থাকি। সি # তে, এগুলি সমস্ত আইনী:
class C {}
class D {};
struct E {}
struct F {};
সি # তে একটি শ্রেণি বা স্ট্রাক্ট ঘোষণা আপনার বিবেচনার ভিত্তিতে একটি সেমিকোলনে শেষ হতে পারে বা নাও হতে পারে। এই অদ্ভুত সামান্য বৈশিষ্ট্যটি সি / সি ++ প্রোগ্রামারদের সি # তে আগতদের সুবিধার জন্য যুক্ত করা হয়েছিল যারা তাদের নখদর্পণে রয়েছে যে টাইপের ঘোষণাগুলি অর্থহীন সেমিকোলনে শেষ হয়; এই অভ্যাস থাকার জন্য ডিজাইন দল তাদের শাস্তি দিতে চায়নি। :-)