Java 来自扫描仪的变量输入值未应用于方法中的变量
Java input value for variable from scanner isn't applying to variable in method
我是 Java 的新手,请多多包涵。我在 Java 中创建了一个递归方法,它允许我输入数字 X 并让系统以 2 为减量打印每个值,直到它达到 1。(我必须添加一个规则,扫描仪可以也只取奇数)。我设置了扫描仪,但它似乎没有获取我分配给 n 的值。
public class Recursividad {
public static int Func(int n)
{
if (n != 1)
return 0;
else
return Func(n-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int x = Func(n);
System.out.println(x);
}
}
输出始终为 0。
当您告诉程序 return 0
if n!=1
时,它会 return 0
if n != 1
。因此,除非您将 1
作为参数传递,否则它将始终打印出 0
,这将导致无限循环。
另外,如果你想每次都打印一些东西,你的命令应该在你的函数内部,而不是外部。如果你的 System.out.println
被放在你的递归函数之外,它只会在整个递归完成后才成为 运行,因此,它只会打印出最后一个数字。
您的代码应如下所示
public class Recursividad {
public static int Func(int n)
{
System.out.println(n);
if (n == 1)
return n;
else
return Func(n-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int x = Func(n);
}
}
PS:还要考虑检查数字是否为 0 或负数
Dotol,它从扫描仪获取输入并将其分配给 n。但是你在递归函数 Func(int n) 中使用的逻辑总是 returning 0 因为你使用 if(n!=1) 意味着无论何时你输入任何东西但 n 它总是 return 0。
P.S。你需要检查你的代码。你也可以做一些调试来知道你错在哪里。
我是 Java 的新手,请多多包涵。我在 Java 中创建了一个递归方法,它允许我输入数字 X 并让系统以 2 为减量打印每个值,直到它达到 1。(我必须添加一个规则,扫描仪可以也只取奇数)。我设置了扫描仪,但它似乎没有获取我分配给 n 的值。
public class Recursividad {
public static int Func(int n)
{
if (n != 1)
return 0;
else
return Func(n-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int x = Func(n);
System.out.println(x);
}
}
输出始终为 0。
当您告诉程序 return 0
if n!=1
时,它会 return 0
if n != 1
。因此,除非您将 1
作为参数传递,否则它将始终打印出 0
,这将导致无限循环。
另外,如果你想每次都打印一些东西,你的命令应该在你的函数内部,而不是外部。如果你的 System.out.println
被放在你的递归函数之外,它只会在整个递归完成后才成为 运行,因此,它只会打印出最后一个数字。
您的代码应如下所示
public class Recursividad {
public static int Func(int n)
{
System.out.println(n);
if (n == 1)
return n;
else
return Func(n-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int x = Func(n);
}
}
PS:还要考虑检查数字是否为 0 或负数
Dotol,它从扫描仪获取输入并将其分配给 n。但是你在递归函数 Func(int n) 中使用的逻辑总是 returning 0 因为你使用 if(n!=1) 意味着无论何时你输入任何东西但 n 它总是 return 0。
P.S。你需要检查你的代码。你也可以做一些调试来知道你错在哪里。