@ পিএসকোকিকের উত্তর ঠিক আছে তবে আমি আমার দুটি সেন্ট যুক্ত করছি। আমি মন্তব্য হিসাবে বা উত্তর হিসাবে এটি করা উচিত কিনা তা নিশ্চিত না; পরেরটি বেছে নিন, কারণ আইএমএইচও অন্যরা দেখতে মূল্যবান, যদিও মন্তব্যগুলি প্রায়শই অদৃশ্য থাকে।
আমি মাঝে মধ্যেই ব্যবহার করি না
if(0) {
//deliberately left empty
} else if( cond1 ) {
//deliberately left empty
} else if( cond2 ) {
//deliberately left empty
...
} else {
// no conditions matched
}
তবে আমি মাঝে মাঝে করি
if( 1
&& cond1
&& cond2
...
&& condN
) {
অথবা
if( 0
|| cond1
|| cond2
...
|| condN
) {
জটিল পরিস্থিতিতে। একই কারণে - সম্পাদনা করা সহজ, # আইফডিফ ইত্যাদি
এই জন্য, পার্ল আমি করব
@array = (
elem1,
elem2,
...
elem1,
) {
- তালিকার শেষে কমাটি নোট করুন। আমি ভুলে গেছি যদি কমাগুলি সি এবং সি ++ তালিকায় বিভাজক বা ডিলিমেটার হয়। আইএমএইচও এটিই আমরা এক জিনিস শিখেছি: [ পার্লে কমা চালিয়ে যাওয়া কি খারাপ অভ্যাস? কমা] একটি ভাল জিনিস। যে কোনও নতুন স্বরলিখনের মতো, অভ্যস্ত হতে কিছুটা সময় লাগে।
আমি if(0)
কোডটি লিস্পের সাথে তুলনা করি
(cond (test1 action1)
(test2 action2)
...
(testn actionn))
যা, আপনি এটি অনুমান করেছিলেন, আমি ইন্ডেন্ট করতে পারি
(cond
(test1 action1)
(test2 action2)
...
(testn actionn)
)
আমি মাঝে মাঝে কল্পনা করার চেষ্টা করেছি যে এর চেয়ে আরও বেশি বেশি মানবীয় পাঠযোগ্য সিনট্যাক্স দেখতে কেমন look
সম্ভবত
IF
:: cond1 THEN code1
:: cond2 THEN code2
...
:: condN THEN codeN
FI
ডিকস্ট্রার [ https://en.wikedia.org/wiki/Guarded_Command_Language#Se लेक्शन :_if [গেরেল্ড কমান্ড ল্যাঙ্গুয়েজ] দ্বারা অনুপ্রাণিত ।
তবে এই বাক্য গঠনটি বোঝায় যে শর্তগুলি সমান্তরালভাবে মূল্যায়ন করা হয়, যেখানে if...else-if
শর্তগুলির ক্রমিক এবং অগ্রাধিকারযুক্ত মূল্যায়ন বোঝায়।
আমি অন্যান্য প্রোগ্রাম তৈরি করে এমন প্রোগ্রাম লেখার সময় এই ধরণের কাজটি শুরু করি যেখানে এটি বিশেষত সুবিধাজনক।
যখন আমরা এটিতে থাকি তখন ইন্টেলের পুরানো আইএইচডিএল ব্যবহার করে আরটিএল লেখার সময় আমার কাছে স্টাফের মতো কোডড থাকে
IF 0 THEN /*nothing*/
**FORC i FROM 1 TO 10 DOC**
ELSE IF signal%i% THEN
// stuff to do if signal%i% is active
**ENDC**
ELSE
// nothing matched
ENDIF
যেখানে FORC..DOC..ENDC
ম্যাক্রো প্রিপ্রেসেসর লুপটি নির্মিত হয়, এটি প্রসারিত হয়
IF 0 THEN /*nothing*/
ELSE IF signal1 THEN
// stuff to do if signal1 is active
ELSE IF signal2 THEN
// stuff to do if signal2 is active
...
ELSE IF signal100 THEN
// stuff to do if signal100 is active
ELSE
// nothing matched
ENDIF
এটি একক অ্যাসাইনমেন্ট, অ-বাধ্যতামূলক, কোড ছিল, সুতরাং আপনার যদি প্রথম সেট বিট সন্ধানের মতো কাজ করার প্রয়োজন হয় তবে রাষ্ট্রীয় ভেরিয়েবল সেট করার অনুমতি ছিল না।
IF 0 THEN /*nothing*/
ELSE IF signal1 THEN
found := 1
ELSE IF signal2 THEN
found := 2
...
ELSE IF signal100 THEN
found := 100
ELSE
// nothing matched
ENDIF
এটি ভাবতে আসুন, এটিই প্রথম স্থান হতে পারে যে আমি এই জাতীয় নির্মাণের মুখোমুখি হয়েছি।
বিটিডাব্লু, কারও কারও যদি (0) শৈলীর প্রতি আপত্তি ছিল - অন্যথায়-যদি-শর্তগুলি ধারাবাহিকভাবে নির্ভরশীল হয় এবং নির্বিচারে পুনরায় সাজানো যায় না - আরটিএল এ ওআর এবং এক্সওর যুক্তির জন্য প্রযোজ্য না - তবে সংক্ষিপ্ত- সার্কিট && এবং ||