努力将 for 循环转换为 do..while 循环
Struggling to convert for loop into do..while loop
我正在努力将 for 循环转换为 do..while 循环,这对我来说似乎是一个不必要的练习,但也许它以后会对我有用。我不知道如何重新设计它,我可以很容易地将它放入 while 循环而不是 do..while.
下面是for循环;
int d;
int n = 55;
for (d = 0; n != 0; d++)
{
n /= 10;
}
System.out.println(d);
感谢任何帮助:)
试试这个:
int d=0;
int n = 55;
do{
n /= 10;
d++;
}while(n != 0);
System.out.println(d);
所有循环都是一样的,基本上他们需要一个condition
。在您的情况下,您的情况是 (n!=0)
。 for
循环很好,因为它有 'tidier'。
我认为这样可以:
int d = 1;
while ((n /= 10) != 0) {
d++;
}
这里有一个没有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);
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 16=] 个案例和 "do..while loop" 个案例中的 1 个。
您可以使用 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());
我正在努力将 for 循环转换为 do..while 循环,这对我来说似乎是一个不必要的练习,但也许它以后会对我有用。我不知道如何重新设计它,我可以很容易地将它放入 while 循环而不是 do..while.
下面是for循环;
int d;
int n = 55;
for (d = 0; n != 0; d++)
{
n /= 10;
}
System.out.println(d);
感谢任何帮助:)
试试这个:
int d=0;
int n = 55;
do{
n /= 10;
d++;
}while(n != 0);
System.out.println(d);
所有循环都是一样的,基本上他们需要一个condition
。在您的情况下,您的情况是 (n!=0)
。 for
循环很好,因为它有 'tidier'。
我认为这样可以:
int d = 1;
while ((n /= 10) != 0) {
d++;
}
这里有一个没有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);
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 16=] 个案例和 "do..while loop" 个案例中的 1 个。
您可以使用 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());