我想读字符串
如果用户输入“H”打印“H”如果输入“G”打印HGH如果打印“O”打印HGHOHGH 如果打印“A”打印HGHOHGHAHGHHGH
我想将代码更改为递归
public static void Pattern(String c ){
if (c.equals("H")==true) {
System.out.println ("H");
}
else if (c.equals("G")==true) {
System.out.println ("HGH");
}
else if (c.equals("O")==true) {
System.out.println ("HGHOHGH");
}
else if (c.equals("A")==true) {
System.out.println ("HGHOHGHAHGHHGH");
}
}
答案 0 :(得分:1)
您无法使用递归来解决此类问题。您的应用程序回复用户的输入以打印硬编码字符串。最好使用上面提到的@Lezorical的switch语句。
递归是根据(更简单的版本)本身定义问题(或问题的解决方案)的过程。
例如,我们可以定义操作"找到回家的路#34;为:
如果你在家,请停止移动。
向家里迈出一步。
"找到回家的路#34;。
这里找到回家路的解决方案是两步(三步)。首先,如果我们已经回家,我们就不会回家。其次,我们做了一个非常简单的动作,使我们的情况更容易解决。最后,我们重做整个算法。
这是计算N的一个例子!使用递归。
public static int factorial(int N) {
if (N == 1) return 1;
return N * factorial(N-1);
}
答案 1 :(得分:0)
您没有指定足够的信息,但您应该这样做:
public static void Pattern(String c){
switch(c){
case "K":
System.out.println ("K");
break;
case "g":
System.out.println ("kgk");
break;
case "t":
System.out.println ("kgktkgk");
break;
case "s":
System.out.println ("kgktkgkskgktkgk");
break;
default:
System.out.println("c is not equal to K, g, t, and s");
}
}