这是本书的问题 - 介绍java BY Y Daniel liang。
问题是: - 将for循环语句转换为while循环和do-while循环?
int sum = 0;
for (int i = 0; i <= 7; i++)
sum = sum + i;
请参阅下面的编码。以及需要进行哪些修改。实际上我对如何将其转换为DO-WHILE Loop非常困惑。
public class Convert_forLoop_toWhileLoop {
public static void main(String[] args) {
int sum = 0;
int i = 0;
do {
sum = sum + i;
System.out.println(sum);
i++;
} while(i <= 7);
}
}
答案 0 :(得分:0)
根据您想变得多么谨慎,您的 do
-loop 示例的“更多”等效 while
-for
-loop 将是:
int sum1(int n) {
int sum = 0;
for (int i = 0; i <= n; i++) {
sum = sum + i;
}
return sum;
}
int sum2(int n) {
int sum = 0;
{
int i = 0;
if (i <= n) {
do {
sum = sum + i;
i++;
} while (i <= n);
}
}
return sum;
}
请注意,我将您的示例封装在 sum1
中(传递 sum1(7)
相当于您的情况)。
对于那些真正想要分头的人——请注意,Java 不一定会将上面的 2 个函数编译成相同的字节码(至少当我测试它时,令我惊讶的是)。 sum2
的 2 个额外字节码指令(20 对 22)。只是我注意到了一些有趣的事情。
答案 1 :(得分:-1)
像这样:
int sum = 0;
int i = 0;
do {
sum += i;
i++;
} while (i <= 7);
System.out.println("The sum of 0 thru " +i + " is:" + sum);
答案 2 :(得分:-2)
您的答案不支持我的初始值为&gt; =循环次数的情况。
你需要先检查病情。
while (i <= 7) {
sum+=i;
// at the last statement increase i
i++
}
System.out.println(sum);