私は処理を学んでいます(視覚芸術のためのJavaベースの言語を知らない人のために)、そして入れ子になったforループで奇妙な問題を見つけました。 これは、ランダムな点数を生成し、それらをすべて接続する単純なプログラムです。入れ子にされたjavaループのスコープの問題
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'でなければなりません。そして、原則として、大文字で異なる2つの変数名を持つべきではありません(つまり、同じプログラム内で変数として "Points"と "Points"の両方を持つべきではありません)。これは、追跡が困難なバグを生成することがほぼ保証されています。 – David
実際、コンパイラはその旨の警告を出すべきです。それらの警告に注意してください、彼らはあなたの人生を楽にします。 –