Java 如何使用递归方法打印a到z
您好,这里是java新手,我需要打印字母表,从a到z,从z到a的顺序相反。我需要使用递归方法来实现这一点Java 如何使用递归方法打印a到z,java,loops,for-loop,recursion,alphabet,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--
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);
}
}
类字母表{
公共静态void main(字符串参数[]){
char ch;
for(ch='a';ch='a';ch--)
系统输出打印(ch);
如果(ch='a')ch=ch++;
系统输出打印(ch);
}
}
我的两个for循环的输出似乎工作得很好,但我完全不懂递归方法
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);
}
}
从main调用
printCharRecur('a')
向前打印字母表:打印字母表的第一个字符,然后打印不带第一个字符的字母表
要反向打印,只需颠倒这两种方法的顺序:打印不带第一个字符的字母表,然后打印第一个字符。方法如下:
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);
}
}
}
执行以下简单操作,只需删除您的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);
charch;
for(ch='a';ch='a';ch--)
系统输出打印(ch);
这里使用简单、单一的方法,没有-
:
void printrec(char c) {
if (c > 'z') return;
System.out.print(c);
printrec((char) (c+1));
System.out.print(c);
}
在你的代码中没有看到任何递归被使用?你试过什么?“我对两个for循环的输出似乎工作得很好,但我完全不懂递归方法”我的意思是OP想知道如何递归地做。但是递归方法在哪里?实际上这是他问的问题(“我完全不懂递归方法”)。