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


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.