【发布时间】:2012-02-16 11:22:30
【问题描述】:
我正在学习处理(对于那些不知道它是一种面向视觉艺术的基于 java 的语言的人),我遇到了嵌套 for 循环的一个奇怪问题。 这是一个简单的程序,(应该)生成随机数量的点,并将它们全部连接起来。
size(1280, 1050);
background(227, 199, 147);
smooth();
stroke(255);
strokeWeight(2);
int points = int(random(30)) + 2;
int[][] Points = new int[points][2];
for (int i = 0; i < points; i++)
{
Points[i][0] = int(random(1280));
Points[i][1] = int(random(1050));
}
for (int i = 0; i + 1 < points; i++)
{
for (int L = i+1; L < points; L++);
{
line(Points[i][0], Points[i][1], Points[L][0], Points[L][1]);
}
}
当我运行它时,我收到一条错误消息“找不到任何名为 L 的东西”,这对我来说似乎很疯狂。有什么想法吗?
【问题讨论】:
-
这与您的问题无关,但以后可能会绊倒您。在纯 Java 中,您不应该有名称以大写字母开头的变量。所以在这个例子中你的数组'Points'和你的循环计数器'L'都是无效的。它们应该是“点”和“l”。通常,您不应该有两个仅通过大小写不同的变量名称(即,您不应该在同一个程序中同时将“Points”和“points”作为变量)。这几乎肯定会产生难以追踪的错误。
-
事实上,编译器应该为此发出警告。注意这些警告,它们会让您的生活更轻松。
标签: java for-loop scope processing nested