জাভা স্ক্রিপ্টে "অন্যটি" সিনট্যাক্স


উত্তর:


507

জাভাস্ক্রিপ্টের অন্যরকমটি "অন্যথায় যদি" ​​বিন্যাসে থাকে, যেমন:

if (condition) {

} else if (other_condition) {

} else {

}

28
লোকেরা যখন এই জাতীয় প্রশ্ন জিজ্ঞাসা করে .. আমার মনে হয় এটি একটি মৌলিক ভুল বোঝাবুঝি দেখায়। সাথে ifএবং elseসত্যিই কোন প্রয়োজন নেই elseif
এমপেইন

14
@ মার্ক, আমি একমত ... তবে এটি আমাকে মাঝে মাঝে গোলমাল করে দেয় কারণ আমি যে ভাষাগুলির সাথে অন্যরকম ভাষা ব্যবহার করি তারা অভ্যস্ত। আমি জানি যে এটি অভিন্ন, তবে আমি আশ্চর্য হয়েছি যে এটি জাভাস্ক্রিপ্টের বাইরে যাওয়ার কারণ কী। তবে আমি আনন্দিত যে তারা এলিফ ব্যবহার করেনি, কারণ এটি ঠিক ভুল :)
জে কে

16
@ জায়েক: হাহাহা .. পিএইচপি আছে elseif, পারল আছে elsif(আমি মনে করি), এবং পাইথন আছে elif.. প্রথমে আমাকে এই ধরণের বিরক্ত করেছিল, কিন্তু ... আমি অনুমান করি এটি বেশ সুন্দর। যদিও পাইথন এবং পিএইচপি-তে এটি সামান্য উদ্দেশ্যে পরিবেশন করে, কারণ এটি তাদের কোলন সিনট্যাক্সের সাথে অন্যথায় কাজ করবে না।
এমপেন

6
@ মার্ক এটি আরও বন্ধনী সম্পর্কে একটি ভুল বোঝাবুঝি দেখায়। ব্লকগুলি if/ elseব্লকের জন্য প্রয়োজনীয় নয় , তবে লোকেদের সেগুলি ব্যবহার করতে উত্সাহিত করা হয়, তাই আমি বুঝতে পারি যে এটি কোনও নতুন ব্যবহারকারীর কাছে কেন ভুল দেখাচ্ছে।

46
@ মার্ক দাবি করার জন্য যে "অন্যথায় যদি" ​​ভুল হয় তা ব্যবহার করার কোনও কারণ নেই। অন্যথায় যদি বিবৃতিগুলি "স্যুইচ" ব্যবহারের অনুরূপ হয় তবে এটি আরও বিস্তৃত তুলনার জন্য মঞ্জুরি দেয়। স্যুইচ অবশ্যই অবশ্যই খুব সাধারণ তুলনার জন্য অনুমতি দেয়। সুতরাং হ্যাঁ, অন্যটি ব্যবহারের অবশ্যই কারণ রয়েছে।
jolsen

49

কেবল একটি স্থান যুক্ত করুন:

if (...) {

} else if (...) {

} else {

}

33

আপনি এই বাক্য গঠনটি ব্যবহার করতে পারেন যা কার্যত সমতুল্য:

switch (true) {
  case condition1:
     //e.g. if (condition1 === true)
     break;
  case condition2:
     //e.g. elseif (condition2 === true)
     break;
  default:
     //e.g. else
}

এটি কাজ করে কারণ প্রতিটিটির conditionসাথে switchমানটির সাথে তুলনা করার আগে পুরোপুরি মূল্যায়ন করা হয়, সুতরাং প্রথমটি যা trueমিলবে তার সাথে মিলবে এবং এর শাখাটি কার্যকর হবে। পরবর্তী শাখাগুলি কার্যকর করা হবে না, তবে আপনি ব্যবহারের কথা মনে রাখবেনbreak

মনে রাখবেন যে কঠোর তুলনা ব্যবহার করা হয়েছে, সুতরাং যে শাখাটি conditionকেবল "সত্যবাদী" তা কার্যকর করা হবে না । আপনি একটি truthy মান কাস্ট করতে পারেন trueডবল অস্বীকৃতি সঙ্গে !!condition


এটি কার্যকরীভাবে AFAIK সমতুল্য নয়। আপনি শর্তে যা রাখতে পারেন তা অনেক বেশি সীমাবদ্ধ এবং switch (true)এমনকি তা বোঝা যায় না।
zwol

2
আমি স্বীকার করি এটি প্রথমে অদ্ভুত দেখাচ্ছে তবে এটি সমান। শর্তটি আপনার পছন্দ মতো কিছু হতে পারে (ফাংশন কলগুলি বা যা কিছু সহ) এবং যদি এটি মূল্যায়ন করে trueতবে সেই কেসটি পূরণ করা হবে - ঠিক মত else if
টমলিন

5
ওহ, আমি এখন আপনি কি করছেন তা দেখতে পাচ্ছি। এটা বেশ সুন্দর চালাক। (এটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য আমি একটি অনুচ্ছেদ যুক্ত করেছি, যাতে আমি আমার
ডাউনটোটটি

1
এটি 1 টিরও বেশি "শর্ত" এর সাথে শর্ত তালিকার জন্য একটি খুব সাধারণ, পরিষ্কার এবং মার্জিত সমাধান
স্টিভ গুসসেনস

4
শর্তগুলি বুলিয়ানগুলি না ফিরিয়ে দিলে সম্পূর্ণ সমতুল্য নয়, যেমন if([]) alert('a')সতর্কতা তৈরি করে তবে switch(true){case []:alert('a')}তা দেয় না। এটি কারণ []একটি সত্যবাদী মান তবে এর সমান নয় true, যেমন @ জওয়োল এই সম্পাদনায় ব্যাখ্যা করেছেন ।
ওরিওল

13

প্রকৃতপক্ষে, প্রযুক্তিগতভাবে যখন সঠিকভাবে ইন্টেন্ট করা হয় তবে তা হবে:

if (condition) {
    ...
} else {
    if (condition) {
        ...
    } else {
        ...
    }
}

সেখানে নেই else if, কঠোরভাবে বলতে।

(আপডেট: অবশ্যই, উল্লিখিত হিসাবে, উপরেরটি ভাল স্টাইল হিসাবে বিবেচনা করা হয় না ))


1
আপনি এটি করতে পারেন, এবং আপনার উচিত, এটি লিখুন if (condition1) { ... } else if (condition2) { ... } else { ... }
zwol

4
সংক্ষেপে ব্যবহার করার সময় else ifআপনি আসলে alচ্ছিক ব্লক বাদ দিচ্ছেন {...}। আমি EMCAScript এবং MDN এর উপর ভিত্তি করে রেফারেন্স দিচ্ছিলাম ..
স্কুব করুন

13
ভাষার আনুষ্ঠানিক ব্যাকরণের দিক থেকে আপনি সঠিক, তবে আপনার উত্তরটি লোককে ভুল else { if ... }শৈলী দেয় যে ভাল শৈলী।
zwol

1
Zwol কি বলেছে। আপনি (স্কিউব) বলতে যা বোঝাতে চেয়েছিল তা এখানে আছে .. এবং তারপরে আপনি যা বলেছিলেন তা এখানে আছে।
জেরার্ড ওনিল

6
if ( 100 < 500 ) {
   //any action
}
else if ( 100 > 500 ){
   //any another action
}

সহজ, ব্যবহারের জায়গা


2

শর্তাধীন বিবৃতি বিভিন্ন অবস্থার উপর ভিত্তি করে বিভিন্ন ক্রিয়া সম্পাদন করতে ব্যবহৃত হয়।

ব্যবহার ifযদি একটি নির্দিষ্ট শর্তটি সত্য হয় তবে মৃত্যুদন্ড কার্যকর করতে কোডের একটি ব্লক নির্দিষ্ট করতে

ব্যবহার elseযদি একই শর্তটি মিথ্যা হয় তবে মৃত্যুদন্ড কার্যকর করতে কোডের একটি ব্লক নির্দিষ্ট করতে

else ifপ্রথম শর্তটি মিথ্যা হলে পরীক্ষার জন্য একটি নতুন শর্ত নির্দিষ্ট করতে ব্যবহার করুন


1
x = 10;
if(x > 100 ) console.log('over 100')
else if (x > 90 ) console.log('over 90')
else if (x > 50 ) console.log('over 50')
else if (x > 9 ) console.log('over 9')
else console.log('lower 9') 

0

আপনি elseএবং এর মধ্যে একটি জায়গা মিস করছেনif

এটি এর else ifপরিবর্তে হওয়া উচিতelseif

if(condition)
{

} 
else if(condition)
{

}
else
{

}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.