格式问题 JAVA
Formatting Issue JAVA
我必须用两种方法创建一个代码,要求用户输入一个数字,程序应该告诉它是否是回文。
我的代码如下:
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;
}
}
但每次我 运行 它时,我总是收到一个错误,告诉我无法找到方法 isPalidrome
中的 inversedNumber
。但是已经在main方法中初始化了。它不应该在 main 方法中寻找初始化吗?或者我的格式 and/or 逻辑有问题。
inversedNumber
在 main()
中声明,在方法 isPalidrome()
中无法识别,因为它不在同一个 scope.
中
您可以按如下方式将其传递给方法:
通话:isPalidrome(value, inversedNumber)
并将方法的签名更改为:
public static boolean isPalidrome(int number, int inversedNumber)
inversedNumber
在不同的 class 上声明,因此其他 classes 无法访问它,只能在它自己的 class 中访问它,您应该将它传递给其他 class 代码如下:
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
设为全局变量,这样每个classes都可以访问它,你可以在class之外声明它,如下所示:
public static int inversedNumber;
注意。 局部变量只能在块内访问。 {}
因为 inversedNumber 在 main 方法内部是局部的,只能在其主体内访问。您有两种选择来完成这项工作。
将 inversedNumber 作为参数发送给方法 isPalendrom 并更改需要两个整数的方法的签名,如下所示。
public static boolean isPalindrome(int number, int inversedNumber)
然后你在 main 中称它为 isPalindrome(value, inversedNumber)
将变量 inversedNumber 设置为全局变量,然后您就可以在 class.
中的任何位置访问它
static int inversedNumber;
然后您可以在 main 中调用它,也可以在其他任何地方调用它。
inversedNumber = reverse(value);
我必须用两种方法创建一个代码,要求用户输入一个数字,程序应该告诉它是否是回文。
我的代码如下:
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;
}
}
但每次我 运行 它时,我总是收到一个错误,告诉我无法找到方法 isPalidrome
中的 inversedNumber
。但是已经在main方法中初始化了。它不应该在 main 方法中寻找初始化吗?或者我的格式 and/or 逻辑有问题。
inversedNumber
在 main()
中声明,在方法 isPalidrome()
中无法识别,因为它不在同一个 scope.
您可以按如下方式将其传递给方法:
通话:isPalidrome(value, inversedNumber)
并将方法的签名更改为:
public static boolean isPalidrome(int number, int inversedNumber)
inversedNumber
在不同的 class 上声明,因此其他 classes 无法访问它,只能在它自己的 class 中访问它,您应该将它传递给其他 class 代码如下:
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
设为全局变量,这样每个classes都可以访问它,你可以在class之外声明它,如下所示:
public static int inversedNumber;
注意。 局部变量只能在块内访问。 {}
因为 inversedNumber 在 main 方法内部是局部的,只能在其主体内访问。您有两种选择来完成这项工作。
将 inversedNumber 作为参数发送给方法 isPalendrom 并更改需要两个整数的方法的签名,如下所示。
public static boolean isPalindrome(int number, int inversedNumber) 然后你在 main 中称它为
isPalindrome(value, inversedNumber)
将变量 inversedNumber 设置为全局变量,然后您就可以在 class.
中的任何位置访问它static int inversedNumber;
然后您可以在 main 中调用它,也可以在其他任何地方调用它。
inversedNumber = reverse(value);