我是编程新手,我想知道如何转换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非常困惑。
答案 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);
}