[英]Converting a do-while loop into a for loop in Java
所以我在我班上的实验室里有这个循环,我必须做。 然后我不得不将循环转换为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);
利用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表达式; 这个表达式增加或减少一个值是完全可以接受的。
do-while
循环不会在第一次迭代时检查条件,但是for
循环会检查条件。 因此,您需要在第一次使for循环中的条件始终为true
。
尝试这个:
for (boolean keepWorking = true; keepWorking; keepWorking = ++count < NUMBER) {
// ...
}
正如其他人所提到的,问题出现了for loop
将检查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++)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.