2013-02-23 28 views
5

Một phần của chương trình Java mà tôi đang yêu cầu người dùng là quốc gia của họ. Một phần khác sử dụng một tuyên bố chuyển đổi, và tôi nhận được một lỗi. Lỗi là: The operator || is undefined for the argument type(s) java.lang.String, java.lang.String. Đây là phương pháp mà các vấn đề xảy ra:Sử dụng "||" trong báo cáo chuyển đổi trong java

public static String getCountryMessage(String countryName) { 
    switch (countryName) { 
    case "USA": 
     return "Hello, "; 
    case "England" || "UK": 
     return "Hallo, "; 
    case "Spain": 
     return "Hola, "; 
    case "France": 
     return "Bonjour, "; 
    case "Germany": 
     return "Guten tag, "; 
    default: 
     return "Hello, "; 
    } 
} 

Làm thế nào để một sử dụng & & và || trong một tuyên bố chuyển đổi Java?

+1

Bằng cách "Hallo" cũng được sử dụng bằng tiếng Đức. "Guten Tag" chính thức hơn nhiều. Không chắc chắn nếu bạn muốn điều đó. – rekire

+0

Xin lỗi java không có tính năng này (BASIC cũ của tôi đã có nó. Nó cũng có khả năng cho các phạm vi 'case 2 To 13'). Nhưng các tính năng như vậy không tồn tại trong java. '||' có thể được mô phỏng bởi sự sụp đổ. (xem Câu trả lời bên dưới). – MrSmith42

Trả lời

14

Tôi không nghĩ rằng bạn có thể sử dụng điều kiện như vậy trong báo cáo chuyển đổi. Nó muốn được đơn giản hơn và đơn giản hơn để viết những dòng này thay vì:

case "England": 
case "UK": 
    return "Hallo"; 

Đây là một fall-through case - nếu chuỗi của bạn phù hợp với một trong hai Anh hoặc Anh, nó sẽ trở lại Hallo.

+0

Công tắc AIFK chỉ cho phép các hằng số như int. Tôi đã bỏ lỡ một cái gì đó? – rekire

+2

Java 7 cho phép chuyển đổi trên Strings. – Makoto

+0

Cảm ơn bạn, Makoto! –

7

Sử dụng các trường hợp rơi qua:

case "England": 
case "UK": 
    return "Hallo, "; 
Các vấn đề liên quan