我必须使用两种方法创建一个代码,要求用户输入一个数字,程序应该判断它是否是一个palidrome。
我的代码如下:
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter a value: ");
int value = scan.nextInt();
int inversedNumber = reverse(value);
System.out.println("Is value " +value+ " a palindrome?: " +isPalidrome(value));
}
public static int reverse(int number)
{
int reverse = 0;
while( number != 0 )
{
reverse = reverse * 10;
reverse = reverse + number%10;
number = number/10;
}
return reverse;
}
public static boolean isPalidrome(int number)
{
boolean palidrome;
if(inversedNumber == number)
palidrome = true;
else
palidrome = false;
return palidrome;
}
}
但每次运行时,我都会收到一条错误消息,告诉我inversedNumber
方法无法找到isPalidrome
。但它已在主要方法中初始化。它应该不在主方法中寻找初始化吗?或者我的格式化和/或逻辑错误。
答案 0 :(得分:3)
inversedNumber
在main()
中声明,在方法isPalidrome()
中无法识别,因为它不在scope内。
您可以按如下方式将其传递给方法:
致电:isPalidrome(value, inversedNumber)
并将方法的签名更改为:
public static boolean isPalidrome(int number, int inversedNumber)
答案 1 :(得分:1)
注意。只能在块中访问局部变量。 {}
因为inversedNumber在main方法中是本地的,并且只能在其正文中访问。你有两种选择来完成这项工作。
将inversedNumber作为参数发送到方法isPalendrom,并更改需要两个整数的方法的签名,如下所示。
public static boolean isPalindrome(int number,int inversedNumber)
然后你在main isPalindrome(value, inversedNumber)
将变量inversedNumber设为全局变量,然后您就可以在类中的任何位置访问它。
static int inversedNumber;
然后你可以在main和其他任何地方调用它,因为你现在正在调用它。
inversedNumber = reverse(value);
答案 2 :(得分:-1)
inversedNumber
在不同的类上声明,因此其他类无法访问它,但只能在它自己的类中,你应该将它传递给另一个类,如下代码所示:
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter a value: ");
int value = scan.nextInt();
int inversedNumber = reverse(value);
System.out.println("Is value " +value+ " a palindrome?: " +isPalidrome(value,inversedNumber));
}
public static int reverse(int number)
{
int reverse = 0;
while( number != 0 )
{
reverse = reverse * 10;
reverse = reverse + number%10;
number = number/10;
}
return reverse;
}
public static boolean isPalidrome(int number, int inversedNumber)
{
boolean palidrome;
if(inversedNumber == number)
palidrome = true;
else
palidrome = false;
return palidrome;
}
此外,你也可以将inversedNumber
作为全局变量,然后每个类都能够访问它,你可以在类之外声明它如下:
public static int inversedNumber;