【问题标题】:Changing a for each loop to a for loop and while loop将 for each 循环更改为 for 循环和 while 循环
【发布时间】:2014-03-15 08:10:40
【问题描述】:

如何将其重写为 while 循环和 for 循环?

public void invertPicture()
{
  Pixel[] pixelArray = getPixels();

  for(Pixel p : pixelArray){
    p.setRed(255-p.getRed());
    p.setGreen(255-p.getGreen());
    p.setBlue(255-p.getBlue());
  }
} 

【问题讨论】:

  • 使用哪种编程语言?这是 Java 吗?
  • 恐怕我现在不记得Java了。但是,官方文档(确实)用 for 来描述 foreach。
  • 哦,您应该在您的问题中添加一个 Java 标记,以便 Java 专家可以找到。
  • 闻起来像作业。
  • 为什么要重写这个?很容易做,只是没有多大意义,除非这是一个家庭作业问题,在这种情况下你应该自己尝试。

标签: java for-loop foreach while-loop


【解决方案1】:

作业提示:

for (int i=0; i<myArray.length; ++i) {
  myArray[i].doSomething();
}

我将 while 作为练习,它非常相似:在循环外声明 i,在循环内递增 i。

【讨论】:

  • 这与 OP 所希望的一样多。如果他完全懂编程,那就绰绰有余了。
【解决方案2】:

好吧,您的代码已经在 for 循环中。但是,我将向您展示另一种执行 for 循环和 while 循环的方法。

For循环:

for(int i = 0; i < pixelArray.length; i++){
     pixelArray[i].setRed(255 -pixelArray[i].getRed());
     pixelArray[i].setGreen(255 - pixelArray[i].getGreen());
     pixelArray[i].setBlue(255 - pixelArray[i].getBlue());
}

While 循环:

int i = 0;
while(i < pixelArray.length){
     i++;
     pixelArray[i].setRed(255 -pixelArray[i].getRed());
     pixelArray[i].setGreen(255 - pixelArray[i].getGreen());
     pixelArray[i].setBlue(255 - pixelArray[i].getBlue());
}

另外:For 循环只是一个更容易实现的 while 循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-13
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多