Không thể sử dụng hàm switch-case với kiểu dữ liệu String? | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Không thể sử dụng hàm switch-case với kiểu dữ liệu String?

JonhDTL

Gà con
Anh chị nào chỉ em với, tại sao em không thể sử dụng swich-case cho kiểu dữ liệu String ạ.
Cụ thể em viết như bên dưới, khi nhập sex vào thì nó chạy cả Male và Femal.
Có anh chị nào hướng dẫn em cách sử dụng trong trường hợp này để phân biệt Male và Female khi nhập từ bàn phím không ạ?
public class TinhBMI {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Name: ");
String name = sc.nextLine();

System.out.println("Sex: ");
String sex = sc.nextLine();

System.out.println("Weight (kg): ");
double weight;
weight = sc.nextFloat();

System.out.println(" (m): ");
double high;
high = sc.nextFloat();
double BMI = weight / Math.pow(high, 2);
System.out.println(BMI);
switch (sex) {
case "Male": {
String bmiM = (BMI < 20) ? "Thin" : (20 <= BMI && BMI < 25) ? "Normal" : "Overweight";
System.out.println(bmiM);
}
case "Female": {
String bmiF = (BMI < 18.5) ? "Thin" : (18.5 <= BMI && BMI < 25) ? "Normal" : "Overweight";
System.out.println(bmiF);
}

}
}
}
 

Handrf

Kiếm đá
Do bạn thiếu
Mã:
break;
ở cuối mỗi case. Mặc định khi 1 case thoả mãn thì nó sẽ vào case đấy và tất cả case bên dưới dù các case bên dưới có thoả mãn điều kiện hay k. Bạn chạy thử ví dụ của mình bên dưới, để ý case 1 của mình có break.

Java:
public class Main {

    public static void main(String[] args) {
        int[] a = new int[]{4,3,2,1};
        for (int x : a) {
            testSc(x);
            System.out.println("___________");
        }
    }

    public static void testSc(int x) {
        switch (x) {
            case 1:
                System.out.println(">> 1");
                break;
            case 2:
                System.out.println(">> 2");
            case 3:
                System.out.println(">> 3");
            default:
                System.out.println(">> n");
        }
    }

}
 


Top