条件更新表达式是否不适用作于do while循环条件判断

直接说例子吧!
#include

int main(void)
{
int i, j;

do{
    scanf ("%d", &i);
    for (j = 1; j < i; i--)
    {    
        printf("一个句子\n");
    }
    while (getchar() !='\n')
    {
         continue;
    }
  }while (scanf("%d", &i) == 1);

return 0;

}
问题:该程序在条件判断处会要求用户再输入一遍以进入循环,与预期一遍输入并持续效果不符。
疑问:1.这类程序是否更适合用while循环进行编写
2.do while循环测试条件是否更适用于固定条件表达式,如(i < 60)。而不适用于更新条件表达式(如:scanf返回值,getchar)

希望有大婶能帮忙解答一下,小bai万分感谢!

第二个问题:他是适用的,while()语句里面是要是一个判断句就行。