我有以下代码,如果给定的数字是偶数则打印为true,如果奇数则为false。
public static void main(String args[]) {
long x = 2222224;
if (x % 2 == 0){
System.out.println("True");
}else{
System.out.println("False");}
}
我的麻烦是我对java有点新,而且我无法区分递归和非递归函数。上面的代码是递归的,如果是的话,我怎么能写一个非递归的。
答案 0 :(得分:1)
递归方法使用一组经过调整的参数调用自身 - 并且您的方法为main
且不调用main
, 递归。
答案 1 :(得分:0)
你没有调用代码所在的方法,所以你所拥有的不是递归的。你的计划:
public static void main(String args[]) {
long x = 2222224;
if (x % 2 == 0){
System.out.println("True");
}else{
System.out.println("False");}
}
打印出True
而没有其他内容。如果你想打印2222224 - 0中的每个值,你可以使用递归(虽然循环会更有效)。
调用自身的方法是递归的:
public static void main(String args[]) {
recursiveMethod(2222224);
}
public static void recursiveMethod(int x){
if(x > 0){
if (x % 2 == 0){
System.out.println("True");
}
else{
System.out.println("False");
}
recursiveMethod(x - 1);
}
}
上述版本打印True
或False
2222224次。每个值为2222224 - 0。
答案 2 :(得分:0)
您的方法不是递归的
递归方法调用本身,例如:
void myMethod( int counter) {
if(counter == 0)
return;
else {
System.out.println("hello" + counter);
myMethod(--counter);
System.out.println(""+counter);
return;
}
}