while(n--)和while(n = n-1)之间有什么区别?

时间:2015-11-11 16:29:27

标签: c++ c

while(n--)while(n=n-1)之间有什么区别?当我在代码中使用while(n=n-1)时,我可以输入少于1个数字。

示例:首先输入3而不是输入3次单个数字(但while(n=n-1)中没有发生这种情况)。 但是当我使用while(n--)时,它是正常的。

我的代码是:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    long long inum;
    scanf("%d", &n);
    while(n--)
    {
        scanf("%lld", &inum);
        if(inum == 0 || inum % 2 == 0)
        {
            printf("even\n");
        }

        else
        {
            printf("odd\n");
        }
    }

    return 0;
}

2 个答案:

答案 0 :(得分:4)

n--的值是n

的先前值
int n = 10;
// value of (n--) is 10
// you can assign that value to another variable and print it
int k = (n--);                     // extra parenthesis for clarity
printf("value of n-- is %d\n", k);

n = n - 1的值比先前的n

值小1
int n = 10;
// value of (n = n - 1) is 9
// you can assign that value to another variable and print it
int k = (n = n - 1);                     // extra parenthesis for clarity
printf("value of n = n - 1 is %d\n", k);

答案 1 :(得分:-1)

while(n--)在其正文中使用n,并且递减的值用于下一次迭代。

while(n=n-1)while(--n)相同,后者会在其正文中递减并使用n的新值。