Java 它没有';不显示任何错误,但编译器只是继续加载或显示[object]

Java 它没有';不显示任何错误,但编译器只是继续加载或显示[object],java,debugging,loading,Java,Debugging,Loading,我想做一个长度转换器,可以把脚转换成其他单位,比如微米、毫米。。。。。。 当我试着运行它时,它只是一直在加载,有时会显示[Object]…(我不知道[Object]是不是一个错误) import java.util.Scanner; public class Converter{ public static void calculateMicro(double number){ double answer = 304796.293632 * number; System.out.prin

我想做一个长度转换器,可以把脚转换成其他单位,比如微米、毫米。。。。。。 当我试着运行它时,它只是一直在加载,有时会显示[Object]…(我不知道[Object]是不是一个错误)

import java.util.Scanner;
public class Converter{


public static void calculateMicro(double number){
double answer =   304796.293632 * number;
System.out.print ("The answer is: " + answer );
}
public static void calculateMilli(double number){
double answer =   304.8 * number;
System.out.print ("The answer is: " + answer );
}
public static void calculateCenti(double number){
double answer =   30.48 * number;
System.out.print ("The answer is: " + answer );
}
public static void calculateMeter(double number){
double answer =   0.3048 * number;
System.out.print ("The answer is: " + answer );
}
public static void calculateKilo(double number){
double answer =   0.0003048 * number;
System.out.print ("The answer is: " + answer );
}
public static void main (String args[]) {
Scanner sc = new Scanner(System.in);

double number = sc.nextDouble();
int x = 1;
int option = sc.nextInt();

while(x==1){
   System.out.println("1.micrometer  2.millimeter  3.centimeter  4.meter  5. kilometer");
  if(option==1){
    calculateMicro(number);
  }
  else if(option==2){
    calculateMilli(number);
  }
  else if(option==3){
    calculateCenti(number);
  }
  else if(option==4){
    calculateMeter(number);
  }
  else if(option==5){
    calculateKilo(number);
  }
}

你被创造成一个无限循环

int x = 1;
while(x==1){
//code...
}
你应该

  • 向用户询问该选项
  • 询问用户是否想再试一次(将x更改为0或1)
  • 我认为,如果你有多项选择,你应该尝试切换,而不是if-else-if-else

    switch(option) {
      case 1:
            calculateMicro(number);
        break;
      case 2:
            calculateMilli(number);
        break;
      //cases
    //  default:
    }
    

    这是Java,不是JavaScript。循环的目的是什么?你在循环中不要求任何用户输入,而且
    x
    永远不会改变,所以它将永远保持循环。先生,即使我不使用任何循环。它只是保持运行,但你使用while,它是一个循环!while(x==1){//convert}
    switch(option) {
      case 1:
            calculateMicro(number);
        break;
      case 2:
            calculateMilli(number);
        break;
      //cases
    //  default:
    }