কীভাবে "বা" স্যুইচ স্টেটমেন্টগুলিতে যুক্ত করবেন?


129

এটি আমি করতে চাই:

switch(myvar)
{
    case: 2 or 5:
    ...
    break;

    case: 7 or 12:
    ...
    break;
    ...
}

আমি "কেস: 2 || 5" দিয়ে চেষ্টা করেছি, কিন্তু এটি কার্যকর হয়নি।

উদ্দেশ্য হ'ল বিভিন্ন মানের জন্য একই কোড না লেখা।


"এটি কাজ করে না" মানে কি? এটি আপনাকে সিনট্যাক্স ত্রুটি, বা যৌক্তিক ত্রুটি দেয়?
— জ্যাক

উত্তর:


324

প্রতিটি সুইচ কেস স্ট্যাক করে আপনি ওআর শর্তটি অর্জন করেন।

switch(myvar)
{
    case 2:
    case 5:
    ...
    break;

    case 7:
    case 12:
    ...
    break;
    ...
}

6
জোয়েল, এটি পড়ার পক্ষে সমর্থন করে না তবে এটি স্ট্যাকিংকে সমর্থন করে (উদাহরণস্বরূপ, এই উত্তরের একটি খালি কেস 2 কেস 5 বিভাগটি কার্যকর করে)।
— প্যাক্সডিয়াবলো

এটি ঠিক আমি যা খুঁজছিলাম ছিল। ভাল কাজ, আপনার কাজ প্রশংসা করা হয়।
— ক্রিস



17

কেস-স্টেটমেন্টগুলি স্বয়ংক্রিয়ভাবে পড়ে যায় যদি আপনি অন্যথায় নির্দিষ্ট না করে (বিরতি লিখে)। তার জন্য আপনি লিখতে পারেন

switch(myvar)
{
   case 2:
   case 5:
   {
      //your code
   break;
   }

// ইত্যাদি ...


5
মনে রাখবেন যে এটি খালি ক্ষেত্রে কেবল সত্য। প্রকৃত দেহের কেসগুলি স্বয়ংক্রিয়ভাবে পড়ে না।
— ফ্রেন্ডে

4

স্যুইচ স্টেটমেন্টের উদাহরণটি দেখায় যে আপনি খালি খালি caseগুলি স্ট্যাক করতে পারবেন না তবে এটি ব্যবহার করা উচিত goto:

// statements_switch.cs
using System;
class SwitchTest 
{
   public static void Main()  
   {
      Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large"); 
      Console.Write("Please enter your selection: "); 
      string s = Console.ReadLine(); 
      int n = int.Parse(s);
      int cost = 0;
      switch(n)       
      {         
         case 1:   
            cost += 25;
            break;                  
         case 2:            
            cost += 25;
            goto case 1;           
         case 3:            
            cost += 50;
            goto case 1;             
         default:            
            Console.WriteLine("Invalid selection. Please select 1, 2, or3.");            
            break;      
       }
       if (cost != 0)
          Console.WriteLine("Please insert {0} cents.", cost);
       Console.WriteLine("Thank you for your business.");
   }
}

-1 এমএসডিএন লিঙ্কটির পৃষ্ঠায় আরও নিচে একটি সজ্জিত উদাহরণ রয়েছে। যে কোনও হারে, সজ্জিত কেসগুলি কার্যকর হয়, বিশেষত এই প্রশ্নে যেখানে বর্ণিত উদ্দেশ্যটি আপনার ক্ষেত্রে 1 এবং 2 এর মতো করে সদৃশ কোড না লিখতে হবে
— গ্যারি.রে

"গোটো কেস" এর উদাহরণ হিসাবে ব্যবহারকারীর সম্পূর্ণ উত্তর।
— স্টিফ গেইলস

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