首页 > 解决方案 > 如何使用 String 和 Scanner 修复 Switch-case

问题描述

输入性别(M 或 F)后,程序立即结束而不进入 switch-case

我尝试将“字符串”更改为“字符串”,但仍然没有任何改变。我认为这会有所作为

import java.util.Scanner;
public class FemurHumerus {

  public static void main(String[] args) {

    String gender;
    double FemHum;
    double MaleHum;
    double FemFem;
    double MaleFem;
    int FemHumR;
    int MaleHumR;
    int FemFemR;
    int MaleFemR;

    Scanner scan = new Scanner(System.in);

    System.out.println("What is your gender? (M or F): ");
    gender = scan.nextLine();

    switch (gender) {

        case "F":


            System.out.print("Enter femur length: ");
            FemFem = in.nextInt();
            FemFemR = (int) (FemFem*1.94+28.7);

            System.out.print("Enter humerus length: ");
            FemHum = in.nextInt();
            FemHumR = (int) (FemHum*2.8+28.2);


            System.out.println("Height based on femur: "+FemFemR);
            System.out.println("Height based on humerus: "+FemHumR);

            break;

        case "M":

            System.out.print("Enter femur length: ");
            MaleFem = in.nextInt();
            MaleFemR = (int) (MaleFem*1.88+32);

            System.out.print("Enter humerus length: ");
            MaleHum = in.nextInt();
            MaleHumR = (int) (MaleHum*2.9+27.9);


            System.out.println("Height based on femur: "+MaleFemR);
            System.out.println("Height based on humerus: "+MaleHumR);

            break;

        default:

            System.out.println("Gender not sprecified.");

            break;
    }

  }

}

预期输出应该是基于股骨和肱骨的特定性别的身高

标签: javastringswitch-statement

解决方案


我同意; 除非你的 in 被声明并且你没有显示它的目的是什么in.nextInt();,否则将你的更改为。scan.nextInt()

在此处输入图像描述

然后你会得到你的开关盒。


推荐阅读