这里是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循环的输出似乎工作得很好,但我完全迷失在递归方法上。
答案 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);
}