Câu lệnh switch case so sánh điều kiện như thế nào?

Em xin chào anh chị,

Ở trong trường thầy cô bảo switch case chỉ cho phép so sánh bằng, em đọc trên mạng cũng bảo vậy. Và đây là code java:

// LỖI
        int BMI = 40;
        switch(BMI) {
            case < 18:
                System.out.println("quá gầy");
                break;
            case < 25 :
                System.out.println("Bình thường");
                break;
            case < 30 :
                System.out.println("Béo phì");
                break;
            default:
                 System.out.println("Béo phì nặng");
            break;
    }

Java sẽ báo lỗi đoạn code trên.

Nhưng trong javascript có thể dùng trick để so sánh với boolean

// KHÔNG LỖI
   switch (true) {
      case (BMI < 18):
         console.log("Quá gầy");
         break;
      case (BMI < 25):
         console.log("Bình thường");
         break;
      case (BMI < 30):
         console.log("Béo phì");
         break;
      default: 
        console.log("Béo phì nặng");
}

Trong C# version 7.3 thì lại dùng switch case với biểu thức logic như ý muốn mà không cần trick như javascript

// KHÔNG LỖI
      int BMI = 23;
      switch(BMI) {
         case < 18:
            Console.WriteLine("quá gầy");
             break;
         case < 25 :
             Console.WriteLine("Bình thường");
             break;
         case < 30 :
             Console.WriteLine("Béo phì");
              break;
         default:
             Console.WriteLine("Béo phì nặng");
          break;
     }

Vậy cho em hỏi định nghĩa switch case cuối cùng như thế nào mới đúng. Em cảm ơn.

Mỗi ngôn ngữ có 1 cách định nghĩa khác nhau, bạn không thể nào bê syntax của ngôn ngữ này sang ngôn ngữ khác được.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?