Abit卡住了为什么我不能得到这个工作:/
public class Robot
{
public static void main(String []args){
ArrayList<String> list = new ArrayList<String>();
String path = "";
int N = 2;
int ol1_right = 1;
int ol1_down = 1;
int ol2_right = 1;
int ol2_down = 1;
buildPath (right, down, path, allPaths, N);
System.out.println (allPath(grid));
}
public void BuildPath (int right, int down, String path,
ArrayList<String> allPaths, int N){
path += "(" + down "," + right + ")->";
if (right == N-1 && down == N-1){
allPaths.add(path);
return;
}
else if (right +1 == ol1_right && down == ol1_down) && (right +1 ==
ol2_right && down == ol2_down);{
return;
}
if (right +1 == ol1_right && down == N-1) || (right +1 == ol2_right
&& down == N-1);{
return;
}
if (right == N-1 && down +1 == ol1_down) || (right == N-1 && down +1
== ol2_right);{
return;
}
if (right == N-1 || right +1 == ol1_right && down == N-1 ||
right +1 == ol2_right && down == N-1){
BuildPath (right, down + 1, path, allPaths, N);
}
else if (down == N-1 || right +1 == ol1_right && down == ol1_down && right +1 ==
ol2_right && down == ol2_down){
BuildPath (right + 1, down, path, allPaths, N);
}
else
BuildPath (right + 1, down, path, allPaths, N);
BuildPath (right, down + 1, path, allPaths, N);
}
}
对不起,即时通讯仍然是新的这种事情,我坚持试图让这个程序工作,但有点卡在哪里去下。我遇到如“非法表达式开始”(使用||和&时抛出)或“不是语句”(路径+ =“(”+ down“即时通讯试图做的是让(机器人)沿网格移动,同时只能向下和向右移动,但也有能力将网格的某些部分标记为禁区。任何帮助将不胜感激,我知道这一切看起来很可怕,但只是试图得到这个窍门,所以对任何菜鸟错误或愚蠢的错误仍然非常新的抱歉:)Abit卡住了为什么我不能得到这个工作:/
从我看到的(以及我的IDE给这个代码的错误), 你有一些基本的编译问题。
在该方法主要(字符串[]),参照该行:
buildPath (right, down, path, allPaths, N);
您没有在主定义的VARS “右”, “下”, “allPaths”。这些是BuildPath(int,int,String,ArrayList,int)中的参数的内部名称,您不能从外部使用它们的名称。
这同样适用于什么是构建路径发生(INT,INT,字符串,ArrayList中,INT),你不能因为他们只在定义使用 “ol1_right”, “ol1_down” 主(字符串[])。
另一个独立的问题是在这条线:
path += "(" + down "," + right + ")->";
添加后+下来。
还有一个问题是,在if语句分号:
else if (right +1 == ol1_right && down == ol1_down) && (right +1 ==
ol2_right && down == ol2_down);{
应该是(删除;,并添加外()):
else if ((right +1 == ol1_right && down == ol1_down) && (right +1 ==
ol2_right && down == ol2_down)) {
谢谢!非常有帮助:)非常感谢 – Daniel
有一些问题,对于初学者Main()
你有
int ol1_right = 1;
int ol1_down = 1;
int ol2_right = 1;
int ol2_down = 1;
您声明和初始化,但随后尝试访问从BuildPath()
不用将它们作为参数。你不能那样做,因为在Java中,变量的作用域被限制在它所定义的块中,除非你另有指定。
在你的情况下,你可能需要将这四个变量移动到BuildPath()
本身。再说一遍,你似乎永远不会改变它们,所以我会让它们中的一个不变。
此外,list
似乎并不像它被使用,所以它可能是多余的。
不是Java的人,我没有一个编译器方便地告诉你到底发生了什么问题。尝试制作一个新文件并逐个添加代码并查看编译器的抱怨。
如果可以的话,如果您在不了解Java的语法的情况下进行递归,那么在我看来,您正在超越自己。我会集中精力学习至少首先的基础知识。
因为ISN 't的JavaScript一开始 –
对不起发誓我打了java – Daniel
你好,欢迎来到丹尼尔StackOverflow。你应该在你的问题中包含哪一行会引发编译错误或异常,可能是完整的堆栈跟踪,并告诉我们你想实现的目标。另外,如果我是你,我会阅读关于jUnit以及如何单元测试你的代码。这将大大帮助你找出问题的出处,并导致更干净的代码作为副作用。 –