所有循环(for、while、do-while)都可以用java表示吗?
我知道我们可以用while循环的形式表示do-while循环,用for循环的形式表示while循环。因此,如果我错了,可以进行以下转换: 暂时 While->For 边做边做->边做 待命->待命所有循环(for、while、do-while)都可以用java表示吗?,java,loops,for-loop,while-loop,do-while,Java,Loops,For Loop,While Loop,Do While,我知道我们可以用while循环的形式表示do-while循环,用for循环的形式表示while循环。因此,如果我错了,可以进行以下转换: 暂时 While->For 边做边做->边做 待命->待命 但我不确定是否可以将while循环转换为do while,因为while循环不一定至少运行一次。有没有办法将while循环转换为dowhile?您可以轻松地从while转换为dowhile。例如,首先只需将布尔值集添加为true,然后在循环条件中,执行like条件或boolean。然后在循环中,将布尔
但我不确定是否可以将while循环转换为do while,因为while循环不一定至少运行一次。有没有办法将while循环转换为dowhile?您可以轻松地从while转换为dowhile。例如,首先只需将布尔值集添加为true,然后在循环条件中,执行like条件或boolean。然后在循环中,将布尔值设置为false。以下是一种方法:
boolean condition = true;
while (condition) {
condition = doThings();
}
这可能不是最好的方法,但它只有在添加布尔变量的情况下才能完美工作。
编辑:我的错,我更正了我的答案。现在它实际上是一个do-while循环
我做了另一个答案,这对我来说更清楚,我认为这真的取决于你的喜好。这是:
boolean bool = true;
while (yourCondition || bool) {
if (bool) {bool = false;}
}
出于好奇,我认为编译器经常会将所有类型的循环转换为一个循环。所以所有的循环都是等价的,您只需要找到一种方法来做到这一点:。假设您有一个接口
interface LoopInfo {
Runnable init();
BooleanSupplier goOn();
Runnable next();
}
使用给定的实例化
LoopInfo myInfo;
这是一个for循环
等效whiledo循环
myInfo.init().run();
while (myInfo.goOn()) {
// loop code
myInfo.next().run();
}
等价的do-while循环
myInfo.init().run();
do {
if (myInfo.goOn()) {
// loop code
}
myInfo.next().run();
} while (myInfo.goOn());
是的,它们可以在彼此之间等价地传输。有没有办法将while循环转换为do while?=>在进入do-while之前用if保护它。是的,除了Item:iterable的for-each循环之外,其他所有循环都可以使用if。我简化了一点。所以你至少要做一次这样的事。如果返回true,则继续执行,直到返回false。那是我的错哦抱歉我不明白你改变了我的答案。。。我不确定是否理解您所做的更改,但无论如何^^如果您对我的编辑不满意,请删除它。我认为支持你会比提出我自己的答案更好,因为我觉得不太舒服,所以我补充道,我们的答案都有:
myInfo.init().run();
do {
if (myInfo.goOn()) {
// loop code
}
myInfo.next().run();
} while (myInfo.goOn());