我想知道是否有办法减少这个循环的大小。我正在寻找以+10为增量的条件,然后相应地加载图像,也在前一个的X,Y坐标+10中。提前谢谢。
if (xpos >= 80){
image(imgRainCloud, 90, 10);
}
if (xpos >= 90){
image(imgBlock, 90, 10);
image(imgRainCloud, 100, 10);
}
if(xpos >= 100){
image(imgBlock, 100, 10);
image(imgRainCloud, 110, 10);
}
if(xpos >= 110){
image(imgBlock, 110, 10);
image(imgRainCloud, 120, 10);
}
if(xpos >= 120){
image(imgBlock, 120, 10);
image(imgRainCloud, 130, 10);
}
if(xpos >= 130){
image(imgBlock, 130, 10);
image(imgRainCloud, 140, 10);
}
if(xpos >= 140){
image(imgBlock, 140, 10);
image(imgRainCloud, 150, 10);
}
else(xpos < 80){
image(imgBlock, 0, 0);
image(imgRainCloud, 0, 0);
}
答案 0 :(得分:7)
if (xpos >= 80){
image(imgRainCloud, 90, 10);
for (int i = 90; xpos >= i; i+=10)
{
image(imgBlock, i, 10);
image(imgRainCloud, i+10, 10);
}
}
else
{
image(imgBlock, 0, 0);
image(imgRainCloud, 0, 0);
}
答案 1 :(得分:0)
你可以将if和else分成不同的集合 例如:
if (xpos > 110) {
image(imgBlock, 110, 10);
image(imgRainCloud, 120, 10);
if (xpos > 120) {
image(imgBlock, 120, 10);
image(imgRainCloud, 130, 10);
}
if (xpos > 130) {
image(imgBlock, 130, 10);
image(imgRainCloud, 140, 10);
}
if (xpos > 140) {
image(imgBlock, 140, 10);
image(imgRainCloud, 150, 10);
}
} else {
if (xpos >= 80) {
image(imgRainCloud, 90, 10);
}
if (xpos >= 90) {
image(imgBlock, 90, 10);
image(imgRainCloud, 100, 10);
}
if (xpos > 100) {
image(imgBlock, 100, 10);
image(imgRainCloud, 110, 10);
}
}
答案 2 :(得分:0)
假设xpos是一个整数,假设您的代码示例缺少一堆else语句,您可能会执行以下操作:
int range = xpos / 10;
if (range > 14)
range = 14;
if (range >= 8)
{
image(imgBlock, range*10, 10);
image(imgRainCloud, (range+1)*10, 10);
}
else
{
image(imgBlock, 0, 0);
image(imgRainCloud, 0, 0);
}
您也可以除以10,然后使用switch语句。