【发布时间】:2020-06-29 20:48:17
【问题描述】:
Link to specific problem: https://hyperskill.org/projects/48/stages/258/implement#comment
public class Main {
private static Scanner input = new Scanner(System.in);
public static void edit(char[][] matrix){
System.out.print("Enter the coordinates: ");
String coords = input.nextLine();
String coords2 = coords.replaceAll("\\s", "");
int coordsNum = Integer.parseInt(coords2);
int compare = coordsNum % 10;
int compare2 = coordsNum / 10;
for(int i = 0; i < coords2.length(); i++){
if(compare < 1 || compare > 3 || compare2 < 1 || compare2 > 3){
//Code
edit(matrix);
}
//Check if input are numbers
if(!Character.isDigit(coords2.charAt(i))){
//Code
edit(matrix);
}
}
}
当我发生递归并键入一个新字符串时,变量 coordsNum、compare 和 compare2 不会从我的输入中更新。每当我的输入低于 0 或高于 3 时,它们都保持不变。我尝试将变量放入一个输入行,但这不起作用。逻辑也没有错。
Ex) 输入:4 1 -> Recur -> 1 3 -> 打印出值,打印 4,1 而不是 1,3
【问题讨论】:
-
@GiorgiTsiklauri 是的!它应该接受一个新的输入,并用这个新的输入更新变量。
-
请澄清您的问题。不清楚。
-
@GiorgiTsiklauri 哪一部分看起来令人困惑?每次进行递归调用时,变量 coordsNum、compare 和 compare2 都应该更新为该输入,但是当我将它们打印出来时,它们并不是最新的输入。
-
您输入的数据是什么?你的意思是 - 他们应该被更新?在这段代码中,您应该为每个递归调用提供一个输入。
-
提供您想要提供的特定输入。
标签: java recursion methods numbers logic