java - 程序不会继续执行下一个方法

标签 java

我正在尝试编写一个程序,让用户输入一个数字,然后输出第一个数字、最后一个数字以及该数字中的位数。我的问题是程序会在 Input 方法中请求输入,但它只是不断地请求输入,并且永远不会进入下一个方法。任何帮助将不胜感激。

private static String number;
private static String x;
private static int argument;
public static int Input()//Takes the user's input
{
   Scanner in=new Scanner(System.in);
   System.out.println("Please input a number");
   argument=in.nextInt();
   number=Integer.toString(argument);
   x=number.substring(0);
   return Input();
}
public static int firstDigit()//Returns the first digit
{
    System.out.println(number.substring(0,1));
    return firstDigit();
}
public static int lastDigit ()//Returns the last digit
{
    int a=number.length();
    System.out.println(number.substring(a-1,a));
    returnn lastDigit();
}
public static  int Digits ()//Returns the number of digits
{
    int a=number.length();
    System.out.println(a);
    return Digits();
}
public static void main(String[]args)
{       
   Input();
   firstDigit();
   lastDigit();
   Digits();
}

最佳答案

您的 Input() 方法在最后不断递归地调用自身。不要那样做,不要记忆方法本身的内部

public static int input()//Takes the user's input
{
   Scanner in=new Scanner(System.in);
   System.out.println("Please input a number");
   argument=in.nextInt();
   number=Integer.toString(argument);
   x=number.substring(0);
   return Input();  // ***** recursion here *****
}

而是返回数字,参数。

public static int input()//Takes the user's input
{
   Scanner in=new Scanner(System.in);
   System.out.println("Please input a number");
   argument=in.nextInt();
   number=Integer.toString(argument);
   x=number.substring(0);
   return argument;
}

或者更好的是,让它无效并让它返回nothing,因为您似乎没有对任何方法的返回值做任何事情。

public static void input()//Takes the user's input
{
   Scanner in=new Scanner(System.in);
   System.out.println("Please input a number");
   argument=in.nextInt();
   number=Integer.toString(argument);
   x=number.substring(0);
}
  • 注意:所有方法名称都应以小写字母开头,因此 input()... 而不是 Input()。
  • 注意 2:根据 Dukeling——您需要对所有您的方法进行类似的修复,因为它们都有相同的问题。

关于java - 程序不会继续执行下一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21458245/

相关文章:

java - 如何捕获 NegativeArraySizeException?

java - 为什么在转换为 XML 时对 JSON 内容属性进行特殊处理?

java - Jenkins 构建中嵌入式 Mongo DB 测试的 UnknownHostException

java - 四舍五入到最接近的好数字

java - JAXB 中属性的访问顺序

javax.sql.DataSource 无法解析符号

java - appium 从弹出列表中选择了不正确的项目

java - Maven Cucumber 报告多个 JSON 文件

JAVA - JSON 将枚举列表序列化为类

java - JLabel 的 setCharAt a