苦苦挣扎将for循环转换为do..while循环

时间:2015-03-09 16:10:22

标签: java loops for-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);

感谢任何帮助:)

5 个答案:

答案 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循环很好,因为它更整洁。