为什么我的程序挂起?

时间:2015-02-21 22:13:14

标签: java

我试图通过调用不同的方法来反转输入的整数。我有这个

import java.util.*;

public class reverseDigit
{

  public static int reverseDigit(int number) //digit reversing method
  {  
    int reverse= 0;

    while(number >= 0)
     {
      reverse = reverse*10 + number%10;
      number = number/10;
     }
   return reverse;
  }
 static Scanner console = new Scanner (System.in);

 public static void main (String[]args) //main method
 {
  int number;

  System.out.println("Enter an interger to be reversed");

  number = console.nextInt();

  System.out.println(number+"reversed is:"+ reverseDigit(number));

 }
}

撞墙,所以感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

使用

while(number > 0)

当数字变为零时,它保持为零,因此你处于无限循环中。

答案 1 :(得分:0)

看起来您的程序处于由行while(number >= 0)引起的无限循环中。在IDE中使用调试器可以帮助您快速找到此问题。用while(number > 0)替换该行以纠正无限循环。

答案 2 :(得分:0)

或者你可以用字符串做到吗?

static int reverse(int number){
    String temp = String.valueOf(number);
    StringBuilder reversedTemp = new StringBuilder(temp);
    reversedTemp.reverse();
    return Integer.parseInt(reversedTemp.toString());
}

或者用一个单线来加强它的味道!

static int reverse(int number){
        return Integer.parseInt(new StringBuilder(String.valueOf(number)).reverse().toString());
}