Java 为什么我的方法在运行时重复 公共类回文时间{ 公共静态void main(字符串[]args){ userInt(); System.out.println(“回文素数小于”+userInt()+ “是:”; 对于(int i=0;i=10){ div*=10; } while(userInt()!=0){ intx=userInt(); int l=x/div; int r=x%10; 如果(l!=r) 返回false; x=(x%div)/10; div/=100; } 返回true; } 私有静态int userInt(){ 扫描仪s=新的扫描仪(System.in); System.out.print(“输入正整数:”); int userInt=s.nextInt(); 返回userInt; } }
是否有不同的方式获取用户输入?或者我能保持这样吗?Java 为什么我的方法在运行时重复 公共类回文时间{ 公共静态void main(字符串[]args){ userInt(); System.out.println(“回文素数小于”+userInt()+ “是:”; 对于(int i=0;i=10){ div*=10; } while(userInt()!=0){ intx=userInt(); int l=x/div; int r=x%10; 如果(l!=r) 返回false; x=(x%div)/10; div/=100; } 返回true; } 私有静态int userInt(){ 扫描仪s=新的扫描仪(System.in); System.out.print(“输入正整数:”); int userInt=s.nextInt(); 返回userInt; } },java,Java,是否有不同的方式获取用户输入?或者我能保持这样吗? 当它运行时,只会不断提示用户输入。按如下方式重新排列: public class PalindromicPrimes { public static void main (String[] args) { userInt(); System.out.println("The palindromic primes less than " + userInt() +
当它运行时,只会不断提示用户输入。按如下方式重新排列:
public class PalindromicPrimes {
public static void main (String[] args) {
userInt();
System.out.println("The palindromic primes less than " + userInt() +
" are:");
for (int i = 0; i <= userInt(); i++) {
if (isPrime() && isPalindrome()) {
System.out.println(i);
}
}
}
private static boolean isPrime() {
if (userInt() == 2 || userInt() == 3) {
return true;
}
if (userInt() % 2 == 0) {
return false;
}
int sqrt = (int) Math.sqrt(userInt()) + 1;
for (int i = 3; i < sqrt; i += 2) {
if (userInt() % i == 0) {
return false;
}
}
return true;
}
private static boolean isPalindrome() {
if (userInt() < 0)
return false;
int div = 1;
while (userInt() / div >= 10) {
div *= 10;
}
while (userInt() != 0) {
int x = userInt();
int l = x / div;
int r = x % 10;
if (l != r)
return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
private static int userInt() {
Scanner s = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
int userInt = s.nextInt();
return userInt;
}
}
publicstaticvoidmain(字符串[]args){
//把它拿来,保存在这里!
int userValue=userInt();
System.out.println(“回文素数小于”+userValue+
“是:”;
对于(int i=0;i按如下方式重新排列:
public class PalindromicPrimes {
public static void main (String[] args) {
userInt();
System.out.println("The palindromic primes less than " + userInt() +
" are:");
for (int i = 0; i <= userInt(); i++) {
if (isPrime() && isPalindrome()) {
System.out.println(i);
}
}
}
private static boolean isPrime() {
if (userInt() == 2 || userInt() == 3) {
return true;
}
if (userInt() % 2 == 0) {
return false;
}
int sqrt = (int) Math.sqrt(userInt()) + 1;
for (int i = 3; i < sqrt; i += 2) {
if (userInt() % i == 0) {
return false;
}
}
return true;
}
private static boolean isPalindrome() {
if (userInt() < 0)
return false;
int div = 1;
while (userInt() / div >= 10) {
div *= 10;
}
while (userInt() != 0) {
int x = userInt();
int l = x / div;
int r = x % 10;
if (l != r)
return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
private static int userInt() {
Scanner s = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
int userInt = s.nextInt();
return userInt;
}
}
publicstaticvoidmain(字符串[]args){
//把它拿来,保存在这里!
int userValue=userInt();
System.out.println(“回文素数小于”+userValue+
“是:”;
对于(int i=0;i请尝试以下方法:
public static void main (String[] args) {
//get it and save it here!
int userValue = userInt();
System.out.println("The palindromic primes less than " + userValue +
" are:");
for (int i = 0; i <= userValue; i++) {
if (isPrime(userValue) && isPalindrome(userValue)) {
System.out.println(i);
}
}
publicstaticvoidmain(字符串[]args){
int value=userInt();
System.out.println(“回文素数小于”+值+
“是:”;
对于(int i=0;i请尝试以下方法:
public static void main (String[] args) {
//get it and save it here!
int userValue = userInt();
System.out.println("The palindromic primes less than " + userValue +
" are:");
for (int i = 0; i <= userValue; i++) {
if (isPrime(userValue) && isPalindrome(userValue)) {
System.out.println(i);
}
}
publicstaticvoidmain(字符串[]args){
int value=userInt();
System.out.println(“回文素数小于”+值+
“是:”;
对于(int i=0;i您应该将userInt()
的结果存储在变量中
public static void main (String[] args) {
int value = userInt();
System.out.println("The palindromic primes less than " + value +
" are:");
for (int i = 0; i <= value; i++) {
if (isPrime() && isPalindrome()) {
System.out.println(i);
}
}
}
然后使用此变量引用用户键入的内容,而不是再次调用userInt()
int typed = userInt();
System.out.println(“回文素数小于”+类型+
“是:”;
对于(int i=0;i
您应该将userInt()的结果存储在变量中
public static void main (String[] args) {
int value = userInt();
System.out.println("The palindromic primes less than " + value +
" are:");
for (int i = 0; i <= value; i++) {
if (isPrime() && isPalindrome()) {
System.out.println(i);
}
}
}
然后使用此变量引用用户键入的内容,而不是再次调用userInt()
int typed = userInt();
System.out.println(“回文素数小于”+类型+
“是:”;
对于(int i=0;i
您一直在调用userInt()。这就是问题所在
我不明白你的逻辑。所以我没有修改代码。但是代码运行
System.out.println("The palindromic primes less than " + typed +
" are:");
for(int i = 0; i < typed; i++) ...
import java.util.Scanner;
公共类回文时间{
公共静态void main(字符串[]args){
intx=userInt();
System.out.println(“回文素数小于”+x+
“是:”;
对于(int i=0;i=10){
div*=10;
}
while(a!=0){
int x=a;
int l=x/div;
int r=x%10;
如果(l!=r)
返回false;
x=(x%div)/10;
div/=100;
}
返回true;
}
私有静态int userInt(){
扫描仪s=新的扫描仪(System.in);
System.out.print(“输入正整数:”);
int userInteger=s.nextInt();
返回userInteger;
}
}
请记住,不要对变量和函数使用相同的名称。在函数userInt()中,您使用了变量int userInt,以从扫描程序获取结果。这有时可能是一个递归调用。请小心。您一直在调用userInt()。这就是问题所在
我不明白你的逻辑。所以我没有修改代码。但是代码运行
System.out.println("The palindromic primes less than " + typed +
" are:");
for(int i = 0; i < typed; i++) ...
import java.util.Scanner;
公共类回文时间{
公共静态void main(字符串[]args){
intx=userInt();
System.out.println(“回文素数小于”+x+
“是:”;
对于(int i=0;i=10){
div*=10;
}
while(a!=0){
int x=a;
int l=x/div;
int r=x%10;
如果(l!=r)
返回false;
x=(x%div)/10;
div/=100;
}
返回true;
}
私有静态int userInt(){
扫描仪s=新的扫描仪(System.in);
System.out.print(“输入正整数:”);
int userInteger=s.nextInt();
返回userInteger;
}
}
请记住,变量和函数的名称不要相同。在函数userInt()中,您使用了变量int userInt,以从扫描程序获取结果。这有时可能是一个递归调用。注意这一点。因为您调用了userInt()为什么不只读取一次值呢?另外,每次调用userInt()
时都要创建扫描程序实例,只需要一个Scanner
实例。因为调用userInt(),为什么不只读取一次值呢?另外,每次调用userInt()时都要创建扫描程序实例
您只需要一个扫描仪
实例。