113

Đây là những gì tôi muốn làm:

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

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

Tôi đã thử với "trường hợp: 2 || 5", nhưng nó không hoạt động.

Mục đích là không viết cùng một mã cho các giá trị khác nhau.

|
285

Bằng cách xếp chồng từng trường hợp chuyển đổi, bạn đạt được điều kiện OR.

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

    case 7:
    case 12:
    ...
    break;
    ...
}
|
  • 1

    Joel, nó không hỗ trợ rơi nhưng nó KHÔNG hỗ trợ xếp chồng (ví dụ: trường hợp trống 2 trong câu trả lời này thực thi phần 5).

    – Huynh Phuonganh 14:54:39 11/05/2009
  • 1

    Đây chính xác là những gì tôi đang tìm kiếm. Tốt công việc, công việc của bạn được đánh giá cao.

    – Tạ Hải Mỹ 13:22:07 27/04/2017
33

Bạn làm điều đó bằng cách xếp chồng nhãn trường hợp :

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

    case 7: 
    case 12:
    ...
    break;
    ...
}
|
19
case 2:
case 5:
do something
break;
|
17

Báo cáo trường hợp tự động rơi vào nếu bạn không chỉ định khác (bằng cách viết ngắt). Do đó bạn có thể viết

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

// v.v ...}

|
  • 1

    Lưu ý rằng điều này chỉ đúng với các trường hợp trống. Các trường hợp với cơ thể thực tế không tự động rơi qua.

    – Lý Mai Hương 14:58:58 11/05/2009
4

Ví dụ cho câu lệnh switch cho thấy rằng bạn không thể xếp chồng các ô trống case, nhưng nên sử dụng gotos:

// 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 Liên kết msdn có một ví dụ xếp chồng xuống trang. Dù sao đi nữa, các trường hợp xếp chồng lên nhau làm việc, đặc biệt là trong câu hỏi này mà mục đích nêu là không viết mã trùng lặp như thực hiện trong trường hợp của bạn 1 và 2.

    – Tạ Mai Ly 15:20:00 11/05/2009
  • 1

    Câu trả lời hữu ích như ví dụ về "trường hợp goto".

    – Đỗ Trọng Vinh 13:48:08 09/10/2018

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.