如何在这个简单的指数示例中使用'e--'表达式?

时间:2014-02-24 16:53:38

标签: c# exponent

我理解这段代码中的每一个符号,除了一部分:“e--;”在While循环中。任何人都可以解释它对我的重要性吗?

public class Power 
{
    public static void Main() 
    {
        int e;
        int result;

        for(int i=0; i < 10; i++) 
        {
            result = 1;
            e = i;

            while(e > 0) 
            {
                result *= 2;
                e--;
            }

            Console.WriteLine(string.Format("2 to the {0} power is {1}", i, result));
        }
    }
}

6 个答案:

答案 0 :(得分:2)

您正在查看postfix decrement operator

它评估e的值,然后从值中减去一个;由于它是一个独立的声明,它只是从e的值中减去一个。

答案 1 :(得分:1)

e--只会递减e的值。它相当于e = e - 1;

减少值的原因是最终退出while循环;一旦将e设置为i的值,循环将无限期运行,除非e的值变得小于或等于零,这使得while循环条件为e > 0错误。

在较大的图片中,您使用e存储i的当前值,然后使用它来执行i次语句result *= 2;。换句话说,您正在使用e来计算在外部result循环的当前迭代期间变量2需要乘以for的次数。

这与做某事类似,

for (int i=0; i < 10; i++) 
{
    result = 1;
    e = 0;

    for (e = i; e > 0; e--) 
    {
        result *= 2;
    }
}

由于while循环确实充当for循环。

答案 2 :(得分:1)

这里的想法是简单地将result乘以2 i次。它通过将e设置为i,每次循环减去一次,并在其为正数时循环来完成此操作。这意味着while循环将始终循环i次。你可以很容易地(并且可以说更清楚地)写出来:

for(int e = 0; e < i; e++)
    result *= 2;

答案 3 :(得分:1)

while(e > 0)

这意味着只要e大于零,您的循环就会运行。 e--在每次迭代时递减e's value。如果你没有在循环中减少它,那么你将获得一个无限循环,因为你的条件总是 true 并且你的循环不会结束。

答案 4 :(得分:1)

e是您的计数器变量。它将重复while循环,直到结果乘以指定的次数(循环开始时为i为止)。正如其他人所说,e--只是将e的值减1。您可以阅读更多here。这意味着,在您提供的代码中,它会将result乘以2 e次,数学上将计算2^i(即2^0 = 12^1 = 2,{ {1}}等。)。

答案 5 :(得分:0)

e--意味着它将在每个循环中减少1,e ++将增加1

查看这篇文章http://msdn.microsoft.com/en-us/library/36x43w8w.aspx