在Java中将do-while循环转换为for循环

时间:2014-02-10 01:53:54

标签: java for-loop

所以我在课堂上进行了这个循环,我必须在课堂上进行。然后我不得不将循环转换为do-while循环以查看设计上的差异并确保我得到相同的结果。现在我需要将它转换为for循环,但我不知道如何设置for语句。目前的情况如下:

  do
  {
     die1Value = generator.nextInt(6) + 1;
     die2Value = generator.nextInt(6) + 1;
     if (die1Value == die2Value)
     {
        if (die1Value == 1)
        {   
           snakeEyes += 1;
        }
        else if (die1Value == 2)
        {   
           twos += 1;
        }   
        else if (die1Value == 3)
        {   
           threes += 1;
        }   
        else if (die1Value == 4)
        {   
           fours += 1;
        }   
        else if (die1Value == 5)
        {   
           fives += 1;
        }   
        else if (die1Value == 6)
        {   
           sixes += 1;   
        }
      }
      count += 1;
    }while (count < NUMBER);

3 个答案:

答案 0 :(得分:1)

利用Java教程和Java Docs;你希望掌握循环的每个部分的语法和含义,所以一旦你读到它就不应该弄清楚如何转换它。

(源)http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

for语句提供了一种迭代一系列值的简洁方法。程序员经常将其称为“for循环”,因为它反复循环直到满足特定条件的方式。 for语句的一般形式可表示如下:

for (initialization; termination; increment) {
    statement(s);
}

使用此版本的for语句时,请记住:

初始化表达式初始化循环;循环开始时,它执行一次。 当终止表达式求值为false时,循环终止。 每次迭代循环后调用increment表达式;这个表达式增加或减少一个值是完全可以接受的。

答案 1 :(得分:1)

do-while循环不会检查第一次迭代的条件,但是for循环会检查。因此,您需要首次在for循环中使条件true

试试这个:

for (boolean keepWorking = true; keepWorking; keepWorking = ++count < NUMBER) {
   // ...
}

答案 2 :(得分:1)

正如其他人所提到的那样,问题出现了for loop将在循环开始时检查条件,但是你的do while循环将在循环结束时检查条件。

这意味着,使用for loop,您 保证至少一次迭代。但是,使用do while循环,至少保证

假设这不是问题,for loop语句可能是这样的:

for (count = 0; count < NUMBER; count++)

count = 0可能需要更改为count = 1或原本应该开始的count


但是,看看count需要如何为当前代码进行初始化,您可以省略for loop中的初始化部分,如下所示:

 for (; count < NUMBER; count++)