java - java中所有循环(for、while、do while)都可以相互表达吗?

标签 java loops for-loop while-loop do-while

据我所知,我们可以用while循环的形式表达do while循环,用for循环的形式表达while循环。因此,以下转换是可能的(如果我错了,请纠正我):

对于->同时

同时 -> 对于

Do-While -> While

Do-While -> 对于

但我不确定是否可以将 while 循环转换为 while ,因为 while 循环不一定至少运行一次。有没有办法将 while 循环转换为 do-while?

最佳答案

您可以轻松地从一个时间转到另一个时间。例如,只需首先添加一个 boolean 值设置为 true,然后在循环条件中执行“条件 OR boolean 值”即可。然后在循环中,将 boolean 值设置为 false。这可能是一种方法:

boolean condition = true;
while (condition) {
  condition = doThings();
}

这可能不是最好的方法,但只有添加 boolean 变量才能完美工作。 编辑:我的错,我纠正了我的答案。现在它实际上是一个 do-while 循环。


我做了另一个答案,这对我来说更清楚,我认为这实际上取决于您的喜好。这是:

boolean bool = true;
while (yourCondition || bool) {
   if (bool) {bool = false;}
}

出于您的好奇心,编译器会将所有类型的循环转换为仅一种循环(我认为这很常见)。所以所有的循环都是等价的,你只需要找到一种方法来做到这一点:)。

关于java - java中所有循环(for、while、do while)都可以相互表达吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49919019/

相关文章:

java - java中deleteOnExit()方法的使用

java - JSON - 嵌套 map 的自定义键序列化

c# - 如何加快循环百万值数组的过程?

iphone - XCODE - 如何 : UIAlertView (with a text field) on a loop until correct value entered into field?

c - For循环条件

javascript - 是否可以在设置超时的情况下延迟 for 循环中的变量?

java - jetty web.xml 503

java - 如何在使用 Uri.parse 下载文件之前检查文件重复

mysql - 如何将mysql结果行存储为包含表格式字符串的变量?

windows - FOR 循环内的 WHILE 循环批量