2016-03-10 59 views
-3

我試圖讓這段代碼在while循環中只做了50次迭代的foreach循環,或者直到hasAChildFoundMother爲true。在一個while循環中,你如何跟蹤一個循環做了多少次迭代?

我需要聲明一個變量,用於跟蹤迭代次數,該變量將成爲while循環條件的一部分;此外,該變量需要在while循環內但在foreach循環之外遞增。

我真正遇到的問題是如何增加「在while循環內但在foreach循環之外」。

public void findMother() { 

     Random generator = new Random(); 

     while (!hasAChildFoundMother()) { 

      for (Turtle babyTurtles : this.babyTurtles) { 
       double degrees = generator.nextInt(90) + 1; 
       babyTurtles.turn(degrees); 

       int distance = generator.nextInt(50 - 10) + 10; 
       babyTurtles.forward(distance); 
      } 

     } 


    } 
+3

在while循環之前進行初始化,在while條件中進行測試,在while循環內但在for循環之外進行增量操作(即,在for代碼行之前用「for」代替它,但在代碼與'while')。 –

+0

嘗試谷歌搜索前來這裏 – redFIVE

+0

謝謝。在來這裏之前,我做了「谷歌」這一項,但有時對某些人來說事情並不那麼容易。我得到了我想要做的事情,但我只是想確定一下。感謝您通過LOL關注它, – Jacob

回答

0
public void findMother() { 

     Random generator = new Random(); 
     int i = 0; 
     while (!hasAChildFoundMother() && i <=50) { 
      //HERE 
      //i++ 
      for (Turtle babyTurtles : this.babyTurtles) { 
       double degrees = generator.nextInt(90) + 1; 
       babyTurtles.turn(degrees); 

       int distance = generator.nextInt(50 - 10) + 10; 
       babyTurtles.forward(distance); 
      } 
      //OR HERE 
      i++; 
     } 


    } 
2

這似乎是使用for循環,而不是一個while循環的理想情況:

for(int i = 0; i < 50 && !hasAChildFoundMother(); i++) { 
    for (Turtle babyTurtles : this.babyTurtles) { 
     ... 
    } 
} 

如果你真的不允許使用for循環此,它需要是一個while循環,你可以去這第二好:

int i = 0; 
while (i < 50 && !hasAChildFoundMother()) { 
    for (Turtle babyTurtles : this.babyTurtles) { 
     ... 
    } 
    i++; 
} 
0

有點困惑的一個問題,但我認爲這應該只是這樣簡單:

聲明count變量和while循環中添加count++。然後設置一個條件計數停止在50.

0
public void findMother() { 
    int counter = 0; 
    Random generator = new Random(); 

    while ((!hasAChildFoundMother()) && (counter < 50)) { 
     counter++; 
     for (Turtle babyTurtles : this.babyTurtles) { 
      double degrees = generator.nextInt(90) + 1; 
      babyTurtles.turn(degrees); 

      int distance = generator.nextInt(50 - 10) + 10; 
      babyTurtles.forward(distance); 
     } 

    } 


} 

因此,基本上你會計算你運行while循環多少次。每當你開始一個新的循環時,它會檢查你是否已經完成了50次迭代,如果是的話,將會完成。

請注意,重要的是(計數器< 50)而不是(計數器< = 50)。後者將運行51次。