C# 嵌套括号求值顺序-深度与Ltr

C# 嵌套括号求值顺序-深度与Ltr,c#,math,tween,operator-precedence,C#,Math,Tween,Operator Precedence,还是只在这之后?Idk 谢谢 资料来源: 编辑: 试图简化: // 1 0 2 3 return to * .5f * ((time -= 2) * time * ((s + 1f) * time + s) + 2f) + from; 这表明: 10 8. 八, 这表明我的第二个猜测是正确的,我认为时间只有在修改后才能使用 我想我只是糊涂了。 它进入正确的分支只是为了评估最深的嵌

还是只在这之后?Idk

谢谢

资料来源:

编辑:

试图简化:

    //                  1                     0         2      3
    return to * .5f * ((time -= 2) * time * ((s + 1f) * time + s) + 2f) + from;
这表明: 10 8. 八,

这表明我的第二个猜测是正确的,我认为时间只有在修改后才能使用

我想我只是糊涂了。 它进入正确的分支只是为了评估最深的嵌套,然后返回到更高的级别,返回到ltr,而不关心它在哪里

谢谢

简化示例 在第二次报税表中回答您的问题时,修改前后是否使用了时间?是吗

public static float BackInOut(float from, float to, float time)
{
    const float s = 1.70158f * 1.525f;
    to -= from;
    if ((time /= .5f) < 1f)
        //     5    6      3      4        0         1      2     7
        return to * .5f * (time * time * ((s + 1f) * time - s)) + from;
    //                  3                     0         1      2
    return to * .5f * ((time -= 2) * time * ((s + 1f) * time + s) + 2f) + from;
}
这个怎么样

using System;
namespace New_folder
{
    class Program
    {
        static public int s { get; set; } = 2;
        static private int _test = 10;
        static public int time
        {
            get
            {
                Console.WriteLine(_test);
                return _test;
            }
            set { _test = value; }
        }
        static public void Main(string[] args)
        {
            var test = (time -= 2) * time * ((s + 1f) * time + s);
        }
    }
}
以上内容可重新写入

public int ReturnZeroIfValueIsNegative(int x)
{
    if ((x += 100) <= 100) // the "+=" operator changed the value of x
    {
        return 0;
    }

    return x; // this will return the altered value of x
}
操作顺序 您可以查看有关编程语言操作顺序的一般说明


我真的建议你重写这些语句,这些一行程序在可读性方面没有帮任何人的忙,这显然是目前的首要任务。
    x = x + 100;

    if (x <= 100)
    {
        return 0;
    }

    return x;