值不正确传递?

时间:2014-10-16 00:58:56

标签: java variables methods

我有一个我应该写的简单程序。在三种方法中,我需要读取整数,反转它们,并确定它们是否是回文。由于某些原因,这些数字总是回归,而不是回文,即使它们显然也是如此。

这是我的代码:

import java.io.*;
import java.util.*;
import java.lang.*;
public class main
{

public static boolean isPal;
public static void main(String[] args)
throws FileNotFoundException, IOException
{
    int num;
    int ctr = 0;
    Scanner input = new Scanner(new File("data4.txt"));
    num = input.nextInt();

    while(num != -999)
    {            
        ctr++;
        reverse(num);
        isPalindrome(isPal, num);
        if(isPal == true)
        {
            System.out.println (num + " is a palindrome");
        }
        else
        {
            System.out.println(num + " is not a palindrome");
        }
        num = input.nextInt();
    }        
    System.out.println(ctr + " numbers were processed.");
    System.out.println("End of Program");
}

public static int reverse(int num)
{
    int dig;
    int rnum = 0;
    while(num != 0)
    {
        dig = num % 10;
        num = num / 10;
        rnum = rnum * 10 + dig;
    }
    return rnum;        
}

public static boolean isPalindrome(boolean isPal,int num)
{
    if(num == rnum)
    {
        isPal = true;
    }
    else
    {
       isPal = false; 
    }
    return isPal;
}    
}

,输入为

3579 6336 5115 -999

1 个答案:

答案 0 :(得分:0)

您的rnum函数中有两个名为reverse()的变量,一个类的成员和另一个本地变量。解决了这个问题。