从for循环中取出一个可迭代变量

时间:2014-02-14 00:01:20

标签: java for-loop

在for-loop out中使用可迭代变量时遇到一些困难,以便用于查找循环的平均返回值量100次。一些背景:每周需要通过滚动D6来开采24米长的隧道。在6,隧道崩溃,你必须重新启动。对于骰子上的每个值,你已经挖掘了那么远(加上前一周)。清理隧道需要多长时间?我试图在100次尝试中找到平均值。

import java.util.Random;

class avgD6{
  public static void main(String[] args){
    int sum = 0;
    for(int x = 0;x<101;x++){
      int progress = 0;
      for(int i = 0; i>=0;i++){
        Random rand = new Random();
        int d = rand.nextInt(6)+1; //roll of a six-sided die
        if(d==6){
          progress = 0; //progress resets, tunnel collapses
        }
        else{
          progress+=d;
        }
        if(progress>=24){
          //System.out.println("The weeks it took was: "+i);
          break;
        }
      }
      sum+=i;
    }
    double avg = sum/x;
    System.out.println(avg);
  }
}

1 个答案:

答案 0 :(得分:1)

在迭代它们的for循环之前立即声明变量,以便它们的范围更大,并且可以在以后引用它们时看到它们。

int x = 0;
for(x = 0;x<101;x++){

int i = 0;
for(i = 0; i>=0;i++){

然后sum+=i;语句可以看到i,而double avg = sum/x;可以看到x

另外,请注意Java中两个int的分区必须是int,因此任何小数部分都会被截断,例如15/101,而不是1.5。将其中一个强制转换为double以强制浮点除法。

double avg = (double) sum / x;