我努力将for循环转换为do..while循环,对我来说似乎是一项不必要的练习,但也许以后对我有用。我无法理解我是如何重新设计它的,我可以很容易地将它放入while循环但不是do .. while。
for循环如下;
int d;
int n = 55;
for (d = 0; n != 0; d++)
{
n /= 10;
}
System.out.println(d);
感谢任何帮助:)
答案 0 :(得分:1)
我认为这样做:
int d = 1;
while ((n /= 10) != 0) {
d++;
}
答案 1 :(得分:0)
这是一个没有do
.. while
/ while
的解决方案,而是一个简单的无限循环(具有最大的灵活性):
int d = 0;
int n = 55;
// loop
while (true) {
n /= 10;
d++;
//break condition
if (n == 0) {
break;
}
}
System.out.println(d);
答案 2 :(得分:0)
int d;
int n = 55;
d = 0;
do {
n /= 10;
d++;
} while(n != 0)
System.out.println(d);
这样,d
变量(只计算循环执行次数)将以与for循环相同的方式更新。
请注意,只有在循环开始时n不为0时,这才有效。换句话说,如果在第二行代码中将n设置为0,则结果将与for循环不同,因为do..while循环总是至少执行一次,因此&#中的输出将为0 34; for loop" " do..while循环"中的case和1情况下。
答案 3 :(得分:0)
您可以使用do...while
循环来实现它,例如
int d = 0;
int n = 55;
do {
n /= 10;
d++;
} while (n != 0);
System.out.println(d);
但我建议您使用Integer.toString(int)
,并将结果String
的长度改为:
System.out.println(Integer.toString(n).length());
答案 4 :(得分:-1)
试试这个:
int d=0;
int n = 55;
do{
n /= 10;
d++;
}while(n != 0);
System.out.println(d);
所有循环都是相同的,基本上它们需要condition
。在您的情况下,您的条件是(n!=0)
。 for
循环很好,因为它更整洁。