বিবৃতি পতনের মাধ্যমে পরিবর্তন করুন ... এর অনুমতি দেওয়া উচিত? [বন্ধ]


120

যতক্ষণ আমি মনে করতে পারি আমি সুইচ স্টেটমেন্ট ফল-থ্রু ব্যবহার করা এড়িয়ে চলেছি। আসলে, আমি এটি কখনই মনে করতে পারি না যে এটি কাজ করার সম্ভাব্য উপায় হিসাবে আমার চেতনাতে প্রবেশ করেছিল কারণ এটি আমার মাথায় তাড়াতাড়ি ছড়িয়ে দেওয়া হয়েছিল যে এটি স্যুইচ স্টেটমেন্টের বাগ ছাড়া আর কিছুই নয়। যাইহোক, আজ আমি এমন কিছু কোড জুড়ে চলেছি যা এটি ডিজাইনের সাহায্যে ব্যবহার করে, যা আমাকে তাত্ক্ষণিকভাবে ভাবতে শুরু করেছিল যে সম্প্রদায়ের সকলেই স্যুইচ বিবৃতিটি পড়ে যাওয়ার বিষয়ে কী মনে করে।

এটি কি এমন কিছু যা কোনও প্রোগ্রামিং ভাষার স্পষ্টরূপে মঞ্জুরি দেওয়া উচিত নয় (যেমন সি # দেয়, যদিও এটি একটি কাজের সরবরাহ সরবরাহ করে) বা এটি কোনও ভাষার বৈশিষ্ট্য যা প্রোগ্রামারের হাতে ছেড়ে দেওয়ার মতো শক্তিশালী?

সম্পাদনা: পতনের মাধ্যমে আমি কী বোঝাতে চাইছি তার পক্ষে আমি যথেষ্ট নির্দিষ্ট ছিল না। আমি এই ধরণের প্রচুর ব্যবহার:

    switch(m_loadAnimSubCt){
        case 0:
        case 1:
            // Do something
            break;
        case 2:
        case 3:
        case 4:
            // Do something
            break;
   }

তবে আমি এই জাতীয় কিছু নিয়ে উদ্বিগ্ন।

   switch(m_loadAnimSubCt){
        case 0:
        case 1:
            // Do something, but fall through to the other cases
            // after doing it.

        case 2:
        case 3:
        case 4:
            // Do something else.
            break;
   }

এই ক্ষেত্রে যখনই কেস 0, 1 হয় এটি স্যুইচ বিবৃতিতে সবকিছু করবে। আমি এটি নকশা দ্বারা দেখেছি এবং আমি জানি না যে আমি এইভাবে স্যুইচ স্টেটমেন্টগুলি ব্যবহার করা উচিত agree আমি মনে করি প্রথম কোড উদাহরণটি খুব দরকারী এবং নিরাপদ। দ্বিতীয়টি বিপজ্জনক বলে মনে হচ্ছে।


এর প্রতারিত stackoverflow.com/questions/174155/...
nawfal

51
গঠনমূলক না সম্পর্কে মতানৈক্য। এই প্রশ্নে ২v জন আপত্তি জানায় যে অন্যরাও আছেন যারা এইভাবে অনুভব করেন।
ওয়েজ মোডগুলি

2
"গঠনমূলক নয়" একটি পুরানো এবং কিছুটা অস্পষ্ট ঘনিষ্ঠ কারণ। আজকাল, এই জাতীয় প্রশ্নগুলি নিখুঁত মতামত ভিত্তিক হিসাবে বন্ধের জন্য চিহ্নিত করা উচিত এবং হওয়া উচিত। এসও কোড বা নকশা সম্পর্কে জবাবদিহি প্রশ্নাবলীর জন্য, 'ফিচার এক্স সম্পর্কে আমার মতামত সম্পর্কে "সম্প্রদায়ের" [যাই হোক না কেন] এর মতামত কী তা নয়। প্রোগ্রামার্স.এসই আরও ভাল ফিট হবে তবে তারপরেও এ জাতীয় একটি বিস্তৃত এবং মতামত-চালিত প্রশ্নের মান এখনও অত্যন্ত সন্দেহজনক।
আন্ডারস্কোর_ডি

1
খুব স্পষ্টভাবে ব্যবহারের ক্ষেত্রে রয়েছে যেখানে পতন প্রক্রিয়া ব্যবহৃত হয়, সুতরাং এটি কেন মতামত ভিত্তিক হবে তা নিশ্চিত হন না। আমি সম্মত এই প্রশ্নটি কিছুটা অস্পষ্ট, কিন্তু এটি গঠনমূলক না হিসাবে বন্ধ করা উচিত হয়নি। এটির আরও সুস্পষ্ট কেস হিসাবে স্রেফ সম্পাদিত হতে পারে: "ফলথ্রু কখন ব্যবহৃত হয়?" যার স্পষ্ট উত্তর রয়েছে। ভাল সি ++ পাঠ্যগুলি এর উপরে চলে গেছে, এটি নতুন কোডারগুলির জন্য বিভ্রান্তিকর (বা অন্যান্য ভাষা থেকে আরও অভিজ্ঞ কোডার), সুতরাং এটির জন্য ভাল প্রশ্ন বলে মনে হয়। প্রকৃতপক্ষে, এটি একটি প্রোটোটাইপিকভাবে ভাল এসও প্রশ্নের মতো মনে হচ্ছে । যদিও এটি জিজ্ঞাসা করার পদ্ধতিটি সঠিক ছিল না।
এরিক 14

উত্তর:


89

এটি আপনি কী উত্থান বিবেচনা করছেন তার উপর নির্ভর করে। আমি এই ধরণের জিনিস দিয়ে ঠিক আছি:

switch (value)
{
  case 0:
    result = ZERO_DIGIT;
    break;

  case 1:
  case 3:
  case 5:
  case 7:
  case 9:
     result = ODD_DIGIT;
     break;

  case 2:
  case 4:
  case 6:
  case 8:
     result = EVEN_DIGIT;
     break;
}

তবে যদি আপনার কেস লেবেল থাকে যা কোড অনুসরণ করে যা অন্য কেস লেবেলে পড়ে, আমি প্রায় সবসময়ই সেই মন্দটিকে বিবেচনা করব। সম্ভবত সাধারণ কোডটি কোনও ফাংশনে সরিয়ে নেওয়া এবং উভয় স্থান থেকে কল করা আরও ভাল ধারণা হবে।

এবং দয়া করে নোট করুন যে আমি "দুষ্ট" এর C ++ FAQ সংজ্ঞাটি ব্যবহার করি


আমি আপনার সাথে একমত: আমি আপনার উদাহরণটিকে পতুরূপ হিসাবে মনে করি না, এবং যদি আমি যদি ফলের্থ্রুয়ের মাধ্যমে একাধিক ব্লকের কোড কার্যকর করতে চাই তবে এমনটি করার আরও ভাল উপায় আছে।
ডেভ ডুপ্লান্টিস

10
কেবলমাত্র "মন্দ" এর সংজ্ঞাটির জন্য +1 করুন। আমি এটি ধার করব, ধন্যবাদ ;-)
জোয়াকিম সাউর

আমি আপনার বক্তব্য পেয়েছি এবং আপনি সঠিক, কিন্তু আপনার উদাহরণ সত্যিই খারাপ। কারওর মতো পরীক্ষার অঙ্কগুলি পরীক্ষা করা উচিত নয়। স্ক্যানার, আপনার উত্তর ঠিকই আছে।
টিম বাথ

ঘটনাচক্রে, এটিই সিটকে অস্বীকার করে। সম্ভবত একটি কারণে :-)
জোয়ি

দুর্ভাগ্যক্রমে খারাপের সংজ্ঞাটি অফলাইনে চলে গেছে বলে মনে হচ্ছে
আশা করি

57

এটি একটি দ্বিধার তরোয়াল। এটি কখনও কখনও খুব দরকারী, তবে প্রায়শই বিপজ্জনক।

এটা কখন ভাল? আপনি যখন 10 টি কেস চান তখন সব একই পদ্ধতিতে প্রক্রিয়া করা হয় ...

switch (c) {
  case 1:
  case 2:
            ... Do some of the work ...
            /* FALLTHROUGH */
  case 17:
            ... Do something ...
            break;
  case 5:
  case 43:
            ... Do something else ...
            break;
}

আমি যে নিয়মটি পছন্দ করি তা হ'ল আপনি যদি বিরতি বাদ দেন এমন কিছু অভিনব কাজ যদি করেন তবে আপনার উদ্দেশ্য সম্পর্কে ইঙ্গিত করার জন্য আপনার একটি স্পষ্ট মন্তব্য / * ফলপ্রসূ * / প্রয়োজন।


3
+1 টি! আমি সম্মত হই যে এটি মাঝেমধ্যে সঠিক উত্তর, এবং আমি অবশ্যই সন্দেহ করি যে এটি যখন ডিজাইনের দ্বারা হয়, তখন এটি মন্তব্য করা উচিত। (একটি কোড পর্যালোচনাতে, আমি অন্য বিকাশকারীকে একটি নকশাবিহীন শূন্য পতনের মাধ্যমে মন্তব্য করব Not এমনটি হয় না; আমরা একটি সি # শপ যেখানে এটি সমর্থিত নয় :)
জন রুডি

4
আমি নিজে যেখানে উপযুক্ত সেখানে আমার কোডটিতে একটি / * ফলস থ্রু * / মন্তব্য ব্যবহার করি। =]
স্টারগার

2
আপনি যদি পিসি-লিন্ট করেন তবে আপনাকে / * - ফলস্রুথ * / sertোকাতে হবে, অন্যথায় এটি অভিযোগ করে।
স্টিভ মেল্নিকফ

1
তবুও, যদি আপনি এটি স্পষ্ট করতে চান যে আচরণটি ইচ্ছাকৃত, আপনি সম্ভবত if(condition > 1 && condition <10) {condition = 1}; switch(...আপনার কেসগুলি বাঁচাতে পারেন (পরিষ্কার চেহারার জন্য) প্লাস সবাই দেখতে পাবে যে আপনি সত্যই এই ঘটনাগুলি একই ক্রিয়াকলাপটি চালিত করতে চেয়েছিলেন।
চিহ্নিত করুন

1
এটি এখনও ভয়ানক কোডিং। প্রথম ক্ষেত্রে কোনও ফাংশন কল করা উচিত, দ্বিতীয় ক্ষেত্রে একই ফাংশনটি কল করা উচিত এবং দ্বিতীয় ফাংশনটি কল করা উচিত।
ব্লুরাজা - ড্যানি পিফ্লুঘুফুট

21

আপনি কি ডাফের ডিভাইস শুনেছেন ? এটি স্যুইচ ফলথ্রু ব্যবহার করার একটি দুর্দান্ত উদাহরণ।

এটি এমন একটি বৈশিষ্ট্য যা ব্যবহার করা যেতে পারে এবং প্রায় সমস্ত ভাষার বৈশিষ্ট্যগুলির মতো এটিও অপব্যবহার করা যায়।


প্রতিদিন নতুন কিছু শিখুন - ধন্যবাদ! আমি দরিদ্র দেবগণের জন্য অনুভব করি যা এই ধরণের সংকোচনের পরেও যায়।
জাস্টিন আর।

বাহ, এটি আপনার মস্তিষ্ককে প্রায় জড়িয়ে রাখার মতো।
ফোস্টাহ

6
এই নিবন্ধে ডাফের উদ্ধৃত মন্তব্যটি দ্রষ্টব্য: "এই কোডটি সেই বিতর্কে একরকম যুক্তি গঠন করে, তবে আমি নিশ্চিত নই যে এটির পক্ষে বা বিপক্ষে।"
জন কার্টার

ডাফের ডিভাইসটি স্পষ্টতই খারাপ
মার্জেতা

21

আপনি যা করছেন তার উপর নির্ভর করে পতন হ'ল সত্যই একটি সহজ জিনিস। বিকল্পগুলি সাজানোর জন্য এই পরিষ্কার এবং বোধগম্য উপায়টি বিবেচনা করুন:

switch ($someoption) {
  case 'a':
  case 'b':
  case 'c':
    // Do something
    break;

  case 'd':
  case 'e':
    // Do something else
    break;
}

যদি / অন্যথায় এটি করার কল্পনা করুন। এটা একটা জগাখিচুড়ি হবে।


1
আমি এই জাতীয় পতনটি খুব সহায়ক বলে মনে করি
মিচেল বিক্রেতারা

যদি 'কিছু করা' হ'ল স্যুইচ করার চেয়ে একটু বেশি তবে / / অন্যটি থেকে গোলমাল করুন। যদি / অন্যটি দিয়ে সর্বত্র পরিষ্কার হয় কোন ভেরিয়েবল পরীক্ষা করা হয়। এমনকি এই ছোট উদাহরণটি / / আমার চোখে যদি এত খারাপ
লাগে না

10

এটি কয়েকবার খুব কার্যকর হতে পারে তবে সাধারণভাবে কোনও পতনের মধ্য দিয়ে কাঙ্ক্ষিত আচরণ করা যায় না। পতনের মাধ্যমে অনুমতি দেওয়া উচিত, তবে অন্তর্নিহিত নয়।

উদাহরণস্বরূপ, কিছু ডেটার পুরানো সংস্করণ আপডেট করতে:

switch (version) {
    case 1:
        // Update some stuff
    case 2:
        // Update more stuff
    case 3:
        // Update even more stuff
    case 4:
        // And so on
}

6

আমি সুইচগুলিতে ফলব্যাকের জন্য আলাদা সিনট্যাক্স পছন্দ করতাম, এর মতো কিছু, এরর ..

switch(myParam)
{
  case 0 or 1 or 2:
    // Do something;
    break;
  case 3 or 4:
    // Do something else;
    break;
}

দ্রষ্টব্য: এনামদের সাথে এটি ইতিমধ্যে সম্ভব হবে, যদি আপনি পতাকা ব্যবহার করে আপনার এনামের সমস্ত মামলা ঘোষণা করেন, তাই না? এটিও এত খারাপ লাগে না; কেসগুলি (উচিত?) খুব ভাল ইতিমধ্যে আপনার এনামের অংশ হতে পারে।

এক্সটেনশন পদ্ধতিগুলি ব্যবহার করে সাবলীল ইন্টারফেসের জন্য এটি একটি দুর্দান্ত কেস (কোনও শঙ্কিত উদ্দেশ্য নয়) হতে পারে? এর মতো কিছু, ভুল ...

int value = 10;
value.Switch()
  .Case(() => { /* Do something; */ }, new {0, 1, 2})
  .Case(() => { /* Do something else */ } new {3, 4})
  .Default(() => { /* Do the default case; */ });

যদিও এটি সম্ভবত কম পাঠযোগ্য: পি


1
আমি প্রথম পরামর্শটি অনেক পছন্দ করি। এটি খুব ভাল করে পড়ে এবং কয়েকটি লাইনের কোড সংরক্ষণ করে। দ্বিতীয়টি আমার মস্তিষ্ককে চারপাশে মুড়ে ফেলার জন্য এক মিনিট সময় নিয়েছিল তবে তা বুদ্ধিমান, তবে এটি গোলমাল বলে মনে হচ্ছে না।
ফোস্টাহ

1
হ্যাঁ, এটি আমিও ভেবেছিলাম, বিদ্যমান ভাষার নির্মাণ ব্যবহার করে সুইচ করার জন্য অন্যরকম উপায় খুঁজে বের করার প্রয়াসে এটি কেবল একটি এলোমেলো মনে ছিল।
এরিক ভ্যান ব্রাকেল

এই প্রশ্নের মাধ্যমে দৌড়ে এবং আমি আসলে এটি পছন্দ! এর পাঠ্যতা কীভাবে উন্নত করা যায় সে সম্পর্কে একটি ধারণা ছিল তবে এসও আমাকে মাল্টি-লাইন মন্তব্য পোস্ট করতে দেয় না :( কাউকে একে একে POC হিসাবে বাস্তবায়ন করা উচিত, প্রয়োগ করতে এবং ব্যবহার করতে মজা লাগবে (:
ভিক্টর ইলিয়াস

5

যে কোনও কিছুর সাথে: যদি যত্ন সহ ব্যবহার করা হয় তবে এটি একটি দুর্দান্ত সরঞ্জাম হতে পারে।

যাইহোক, আমি মনে করি যে অপূর্ণতাগুলি এটি ব্যবহার না করার ন্যায়সঙ্গত করা এবং অবশেষে এটি আর অনুমতি না দেওয়া (সি #)। সমস্যার মধ্যে রয়েছে:

  • বিরতি "ভুলে যাওয়া" সহজ
  • কোড রক্ষণকারীদের পক্ষে এটি সর্বদা সুস্পষ্ট নয় যে বাদ দেওয়া বিরতি উদ্দেশ্যমূলক ছিল

একটি স্যুইচ / কেস পড়ার মাধ্যমে ভাল ব্যবহার:

switch (x)
{
case 1:
case 2:
case 3:
 Do something
 break;
}

একটি স্যুইচ / কেস পড়ে যাওয়ার মাধ্যমে Baaaad ব্যবহার:

switch (x)
{
case 1:
    Some code
case 2:
    Some more code
case 3:
    Even more code
    break;
}

এটি যদি / অন্যথায় আমার মতে কোনও ক্ষতি ছাড়াই কমেন্ট করে আবার লিখতে পারে।

আমার চূড়ান্ত শব্দ: খারাপ উদাহরণ হিসাবে ফ্যাল-থ্রো কেস লেবেল থেকে দূরে থাকুন , যদি না আপনি যদি এই স্টাইলটি ব্যবহার করেন এবং ভালভাবে বোঝেন তবে লিগ্যাসি কোডটি বজায় না রেখে।


3
আপনি () এবং গোটো ব্যবহার করে সর্বাধিক ভাষা রচনাগুলি পুনরায় লিখতে পারেন ... যদিও এটি একটি সুস্পষ্ট নির্মাণকে ত্যাগ করার ন্যায়সঙ্গত নয়।
শোগ

2
আমি জানি তবে সুইচ / কেস কনস্ট্রাক্টসগুলি স্পষ্টভাবে "কেস 1: কিছু কোড কেস 2: আরও কিছু কোড কেস 3: চূড়ান্ত কোড ব্রেক" ব্যবহার করে / অন্যথায় যদি (আমার মতামত) ব্যবহার করে আবার লিখতে হবে এবং করা উচিত।
স্টিফেনজ

1
নোট করুন যে স্যুইচ-এলিজের তালিকার তুলনায় অনেকগুণ দ্রুত হতে পারে। স্যুইচ একটি জাম্প টেবিল ব্যবহার করে, বা যখন এটি সম্ভব না হয়, শর্তসাপূর্ণ জাম্পের লিনিয়ার তালিকার পরিবর্তে এটির শর্তযুক্ত জাম্পগুলি সিদ্ধান্তের গাছে কাঠামোযুক্ত করা হবে। সুসংগঠিত নেস্টেড যদি-অন্য বিবৃতিগুলি সর্বোত্তম, তেমনি দ্রুত হবে।
জোহেম কুইজপারস

4

এটি শক্তিশালী এবং বিপজ্জনক। পতনের মাধ্যমে সবচেয়ে বড় সমস্যাটি হ'ল এটি স্পষ্ট নয়। উদাহরণস্বরূপ, আপনি যদি ঘন ঘন সম্পাদিত কোডটিতে এসে পড়ে থাকেন যা ফল-থ্রুগুলির সাথে স্যুইচ করে থাকে তবে আপনি কীভাবে জানবেন যে এটি উদ্দেশ্যমূলক এবং কোনও বাগ নয়?

আমি যেখানেই এটি ব্যবহার করি না কেন, আমি এটি নিশ্চিত করেছিলাম যে এটি সঠিকভাবে মন্তব্য করেছে:

switch($var) {
    case 'first':
        // Fall-through
    case 'second':
        i++;
        break;
 }

2
'প্রথম' কেসের জন্য কোনও কোড না থাকলে অভিপ্রায়টি সুস্পষ্ট। আপনি যদি সেখানে কোড করেন এবং 'দ্বিতীয়' কেসের জন্য কোডটি চালাতে চান তবে মন্তব্যটি গুরুত্বপূর্ণ। তবে আমি যেভাবেই হোক না কেন দৃশ্যটি এড়াতে চাই।
জোয়েল কোহর্ন 18

1
@ জোয়েল - আমি সম্পূর্ণ একমত আমার দোকানে, আমাদের লোকেরা এই ধরণের ক্ষেত্রে মন্তব্য করা সত্ত্বেও লোককে পতিত করেছিল এবং আমি মনে করি এটি পাঠযোগ্যতা হ্রাস করে। কোড আছে যদি, যদিও, পড়ন্ত মন্তব্য মন্তব্য করা।
ফ্রেড লারসন

আমরা "সুস্পষ্ট নয়" এর অর্থ কী? এই কারণেই আমরা ভাঙ্গি; অন্যান্য ভাষা এটি করে this এটি কেবলমাত্র সেই লোকদের জন্য যারা তাদের ভাষাগুলি যথাযথভাবে শিখেনি for সি # ডিফল্ট কেস এফএফএসের জন্য এটি দাবি করে, কোনও কারণ ছাড়াই ho
mckenzm

3

আপনার প্রথম উদাহরণে ফল-থ্রো লাইক ব্যবহার করা পরিষ্কারভাবে ঠিক আছে, এবং আমি এটিকে আসল পতনের মধ্য দিয়ে বিবেচনা করব না।

দ্বিতীয় উদাহরণটি বিপজ্জনক এবং (যদি ব্যাপকভাবে মন্তব্য করা হয় না) তবে স্পষ্ট নয়। আমি আমার ছাত্রদের এই ধরনের নির্মাণকাজ ব্যবহার না করার জন্য তাদের পরামর্শ দিই যদি না তারা এটিতে কোনও মন্তব্য ব্লককে উত্সর্গ করার প্রচেষ্টাটিকে বিবেচনা করে, যা বর্ণনা করে যে এটি একটি উদ্দেশ্যমূলক ফলস-মাধ্যমে, এবং বিকল্পগুলির চেয়ে কেন এই সমাধানটি আরও ভাল। এটি opালু ব্যবহারকে নিরুৎসাহিত করে, তবে এটি যে কোনও ক্ষেত্রে এটির সুবিধার্থে ব্যবহৃত হয় তা এটিকে অনুমতি দেয়।

কেউ কোডিং মানটি লঙ্ঘন করতে চাইলে মহাকাশ প্রকল্পগুলিতে আমরা যা করেছি তার তুলনায় এটি কমবেশি সমান: তাদের বিতরণ করার জন্য আবেদন করতে হয়েছিল (এবং আমাকে রায় সম্পর্কে পরামর্শ দেওয়ার জন্য আহ্বান জানানো হয়েছিল)।


2

আমার switchবক্তব্যগুলি পড়তে আমি পছন্দ করি না - এটি খুব বেশি ত্রুটিযুক্ত এবং পড়া খুব কঠিন। যখন একাধিক শুধুমাত্র ব্যতিক্রম নয় caseবিবৃতি সব করতে ঠিক একই জিনিস।

যদি এমন কোনও সাধারণ কোড থাকে যা একটি স্যুইচ স্টেটমেন্টের একাধিক শাখা ব্যবহার করতে চায় তবে আমি এটিকে একটি পৃথক সাধারণ ফাংশন থেকে বের করি যা কোনও শাখায় ডাকা যেতে পারে।


1

কিছু ক্ষেত্রে, প্রোগ্রামারটির পক্ষ থেকে পড়া-পড়া ব্যবহার করা অলসতার কাজ - তারা একটি সিরিজ ব্যবহার করতে পারে || উদাহরণস্বরূপ বিবৃতি, তবে পরিবর্তে 'ক্যাচ-অল' স্যুইচ কেসগুলির একটি সিরিজ ব্যবহার করুন।

এটি বলা হচ্ছে, আমি এগুলিকে বিশেষভাবে সহায়ক বলে মনে করেছি যখন অবশেষে আমি জানি যে কোনও উপায়ে (উদাহরণস্বরূপ একটি মেনু প্রতিক্রিয়া হিসাবে) প্রয়োজন হবে, তবে এখনও সমস্ত পছন্দ কার্যকর করা হয়নি। তেমনিভাবে, আপনি যদি 'এ' এবং 'এ' উভয়ের জন্য একটি পতন কাজ করে থাকেন তবে আমি বিবৃতিতে কোনও যৌগের চেয়ে সুইচ ফল-থ্রুটি ব্যবহার করা যথেষ্ট পরিমাণে ক্লিনার বলে মনে করি।

এটি সম্ভবত স্টাইলের বিষয় এবং প্রোগ্রামাররা কীভাবে ভাবেন, তবে আমি সাধারণত 'সুরক্ষা' নামে কোনও ভাষার উপাদান অপসারণ করতে পছন্দ করি না - যার কারণেই আমি সি এবং এর রূপগুলি / বংশধরদের দিকে ঝোঁক বেশি বলি, জাভা। আমি পয়েন্টার এবং পছন্দ মতো বানরের আশেপাশে সক্ষম হতে পছন্দ করি, এমনকি আমার কোনও "কারণ" না থাকলেও।


কড়া কথা বলছি। স্যুইচ স্টেটমেন্টগুলি একটি নির্দিষ্ট মান অবস্থানের একটি গোছায় একটি সেট মান দিয়ে লাফ দেয়। যদিও সংকলক সম্ভবত এই জাতীয় জিনিসগুলি ধরে ফেলবে সেখানে সিরিজ বা বিবৃতিগুলির উপর একটি স্যুইচ বিবৃতিতে একটি গতি এবং নির্ভুলতার মান রয়েছে। যদি পি 0 হয় বা পি হয় 1 বা পি হয় 2। কোডটিতে পি = 2 অবস্থানে ঝাঁপিয়ে পড়ার পরিবর্তে আমার আসলে পি 0 এবং পি 1 ছিল কিনা তা মূল্যায়ন করতে হয়েছিল। যা p0, এবং p1 এর সাথে অভিন্ন হতে পারে। কিন্তু, আমাকে কখনই তাদের চেক করতে হয়নি।
তাতারাইজ

1

পতনের মাধ্যমে কেবল তখনই ব্যবহার করা উচিত যখন এটি কোডের একটি ব্লকে জাম্প টেবিল হিসাবে ব্যবহৃত হয়। যদি আরও মামলার আগে শর্তহীন বিরতির সাথে কোডের কোনও অংশ থাকে তবে সমস্ত কেস গ্রুপগুলির সেইভাবে শেষ করা উচিত।

আর কিছু যে "দুষ্ট" evil

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