如何使用递归方法打印到z

时间:2013-10-24 06:42:32

标签: java loops for-loop recursion alphabet

这里是java新手,我需要从a到z打印字母表,然后从z打印到a。我需要使用递归方法来做到这一点。

class Alphabets{


public static void main(String args[]){
  char ch;
  for( ch = 'a' ; ch <= 'z' ; ch++ )
    System.out.print(ch);
  System.out.println();
  for( ch = 'z' ; ch >= 'a' ; ch--)
     System.out.print(ch);

  if (ch <= 'a') ch = ch--;
    else if(ch >='a') ch = ch++;
    System.out.print(ch);

 }
}

我的两个for循环的输出似乎工作得很好,但我完全迷失在递归方法上。

5 个答案:

答案 0 :(得分:1)

这是怎么做的:

public static void main(String[] args) {
    recursiveAlphabet('a');
    recursiveAlphabetReverse('z');
}

public static void recursiveAlphabet(char current) {
    System.out.println(current);
    if (current != 'z') {
        recursiveAlphabet((char) (current + 1));
    }
}

public static void recursiveAlphabetReverse(char current) {
    System.out.println(current);
    if (current != 'a') {
        recursiveAlphabetReverse((char) (current - 1));
    }
}

如果需要,您可以使用一种方法,如下所示:

public static void main(String[] args) {
    resursiveBothSide('a', true);
}

public static void resursiveBothSide(char current, boolean forward) {
    System.out.println(current);
    if ((current == 'z') && (forward)) {
        forward = false;
    }
    if (forward) {
        resursiveBothSide((char) (current + 1), forward);
    } else {
        if (current != 'a') {
            resursiveBothSide((char) (current - 1), forward);
        }
    }
}

答案 1 :(得分:0)

public static void printCharRecur(char ch) {
 if(ch=='z') System.out.print("z z");
 else {
  System.out.print(ch);
  printCharRecur((char) (ch+1));
  System.out.print(ch);
 }
}

从主

调用printCharRecur('a')

答案 2 :(得分:0)

要向前打印字母:打印字母表的第一个字符,然后打印没有第一个字符的字母。

要反向打印,只需颠倒那两个的顺序:打印不带第一个字符的字母,然后打印第一个字符。

答案 3 :(得分:0)

下面简单地删除你的if条件: -

char ch;
          for( ch = 'a' ; ch <= 'z' ; ch++ )
            System.out.print(ch);
          System.out.println();
          for( ch = 'z' ; ch >= 'a' ; ch--)
             System.out.print(ch);

答案 4 :(得分:0)

此处使用简单的单一方法且没有-

void printrec(char c) {
    if (c > 'z') return;
    System.out.print(c);
    printrec((char) (c+1));
    System.out.print(c);
}