Java 使用静态变量和循环main方法堆叠switch语句

Java 使用静态变量和循环main方法堆叠switch语句,java,Java,我正在用java制作一个单元转换器,当我在循环后运行程序时遇到了一个问题。我不确定这是否是我的静态变量、switch语句或循环的问题——我是java新手,这是我的第一个程序。我遇到的主要问题是,在第二次运行它并切换要转换的单元类型后,会出现以下问题: “输入转换值: 三十三 33公斤=145.50525磅 输入转换值: 但我希望它能做到这一点: “33公斤=145.50525磅 是否要继续并执行另一个转换?('Y'或'N')” 这是代码(sry我知道有很多要看) 将以下行添加到键入函数的顶部,以

我正在用java制作一个单元转换器,当我在循环后运行程序时遇到了一个问题。我不确定这是否是我的静态变量、switch语句或循环的问题——我是java新手,这是我的第一个程序。我遇到的主要问题是,在第二次运行它并切换要转换的单元类型后,会出现以下问题:

“输入转换值: 三十三

33公斤=145.50525磅

输入转换值:

但我希望它能做到这一点:

“33公斤=145.50525磅

是否要继续并执行另一个转换?('Y'或'N')”

这是代码(sry我知道有很多要看)


将以下行添加到
键入
函数的顶部,以修复当前问题

a=b=c=-1; 
这可确保一次只有一个变量具有有效的
大小写值

此外,您还导致了无限堆栈问题

将循环更改为如下所示(或者正如Quoi所做的,这是一个更好的选择)


如果我理解正确:),请使用
do while
获得n次工作

public static void main(String args[]) {
  do{
       mainMenu();
      Type();
      Direction();
      System.out.println ("do you want to continue and perform another conversion? ('Y' or 'N')");
      String input = YN.nextLine();  
   }while(YorN.equalsIgnoreCase(input));
}

非常感谢!我不知道案例值或无限堆栈问题!(这里是大菜鸟)。也是第一次使用这个网站,这不会是我的最后一次。再次,非常感谢你的帮助-这是非常有益的。
System.out.println("");
System.out.println ("do you want to continue and perform another conversion? ('Y' or 'N')");
YorN = YN.nextLine();
if(YorN.equalsIgnoreCase("y"))
    main(null);
public static void main(String args[]) {
  do{
       mainMenu();
      Type();
      Direction();
      System.out.println ("do you want to continue and perform another conversion? ('Y' or 'N')");
      String input = YN.nextLine();  
   }while(YorN.equalsIgnoreCase(input));
}