繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM