将for循环转换为while循环

时间:2015-08-13 15:44:23

标签: loops

我是编程新手,我想知道如何转换for循环来做while循环

for(int i=0;i<r;i++)
    {
        for(int k=r;k>i;k--)
        {
            System.out.print(" ");
        }
        int number = 1;
        for(int j=0;j<=i;j++)
        {

             System.out.print(number+" ");
             number = number * (i - j) / (j + 1);

        }
        System.out.println();
    }

请参阅下面的编码。实际上我对如何将其转换为DO-WHILE Loop非常困惑。

5 个答案:

答案 0 :(得分:1)

do while循环的结构如下:

do {

 some iterative function

} while (some condition is true);

do-while循环将在评估条件之前至少执行一次代码。在实施时请牢记这一点。

答案 1 :(得分:0)

严格地说,你不能。它们是不可通约的。 for循环执行零次或多次,因为它在顶部进行测试。 do/while循环在底部测试时执行一次或多次,即至少一次。如果您知道条件最初为for,则只能将do/while正确转换为true

答案 2 :(得分:-1)

如果while类似循环,则处理for循环的简单方法是:

for(int i=0; i<10; i++){ ...... }
也可以作为

do
{
  .....;
  i++;
}while(i<10)

OR

while(i<10)
{
   .....;
   i++;
}

答案 3 :(得分:-1)

基本上,您将初始化语句移动到do-while之前,将increment语句放在do-while中,并将终止条件作为while条件。即。

//the innermost loop
int number = 1;
j = 0;  //initialization statement
do
{
    System.out.print(number + " ");
    number = number * (i -j)/(j + 1);
    j++; //increment statement
}
while(j < i /* termination condition */); 

答案 4 :(得分:-1)

如果您的for循环类似于此:

for (int i = a; i < b; i++) {
    // Body
}

然后你知道它会执行身体b-a次(禁止对身体内的i进行任何修改。

所以你把它翻译成:

int i = a;
if (i < b) {
    do {
    // Body
        i++;
    } while (i < b);
}

请注意,您必须将do { ... } while( ... )包装在if-else中,因为do-while循环将至少执行一次主体,这对于for循环是不正确的。

一般来说,如果你有一个for(initial_condition; boolean_expr; incr)循环,那么do-while等价物就是

initial_condition;
if (boolean_expr) {
    do {
        // Body
        incr;
    } while (boolean_expr);
}