所以我有一个项目,其中一部分系统将2d数组发送到Processing。如果某些数字在数组中,则Processing会查看数组并播放声音。我想知道是否有办法循环并查找数组中的特定元素。当前代码低于我想要做的一个例子。我还应该把它变成一个类而不是循环吗?
我想要的是:Int [] [] x = {1,{3,2,4},2}。如果它看到1,则处理ping,如果看到1,则处理p。
int [][] loops = {{1},{3,2,4},{1}};
void mousePressed()
{
for (int i =0; i < loops.length;i++)
{
println("i = " + i);
for (int j = 0; j < loops[i].length; j++)
{
println("j = " + j);
if (loops[i][j] == 1)
{
delay(1500);
println("silence " + j) ;
}
if (loops[i][j] == 2);
{
song2.rewind(); // Rewind sounds for future playback
int y = millis(); // Temp Variable
song2.play(); // Self Explanitory
delay(song2.length());
println("dingdong " + j);
}
if (loops[i][j] == 3)
{
println("Start Loop");
}
}
}
}
答案 0 :(得分:1)
您可以使用一种非常简单的方法来搜索数组并在代码中使用它。例如
public static boolean hasInt (int[][] list, int input)
{
for(int i=0;i<list.length;i++)
{
for(int j=0;j<list[i].length;j++)
{
if(list[i][j]==input)
return true;
}
}
return false;
}
在使用开放式大括号{或任何时候制作循环或条件时,你应该真正缩进,因为它会使你的代码更具可读性。而不是使用if
一堆else if
。如果满足前一个条件,则else if
将被完全跳过,因为在您的代码中,您正在检查不同的东西,例如int等于1,2或3,那么在最大值中只有一个可以为真。因此,检查其余部分是否属实是没有意义的。