Java 有关此类运算符的函数的详细信息:+=,*=,-=/=

Java 有关此类运算符的函数的详细信息:+=,*=,-=/=,java,Java,我当时正在学习Java,我在一本书中看到了这个例子: int x=2, n=3; int result=1; for (int i=1; i<=n; i++) result*=x; System.out.println(result); 这计算2乘以3的幂。我不明白的是它是如何做的细节。我想对于int I=1;i在这个循环中: for (int i=1; i<=n; i++) result*=x; 关于a*=b与a=a*b相同,这并

我当时正在学习Java,我在一本书中看到了这个例子:

int x=2, n=3;
    int result=1;
    for (int i=1; i<=n; i++)
        result*=x;
    System.out.println(result);
这计算2乘以3的幂。我不明白的是它是如何做的细节。我想对于int I=1;i在这个循环中:

for (int i=1; i<=n; i++)
    result*=x;

关于a*=b与a=a*b相同,这并不完全相同,但足够接近。a*=b与a=a*typeOfAb相同,其中typeOfA是对a类型的转换,例如a=a*intb。这很少会导致不同的结果,因为a和b的类型通常是相同的,但当a和b的类型不同时,java自动加宽/转换可能会产生影响。

让我们一步一步来:

int x=2, n=3;
int result=1;
这两条线最多可以简化为:

int x;
int n;
int result;
x = 2;
n = 3;
result = 1;
int结构(例如int x)定义了int类型的变量(例如x)。这意味着x可以保存一个整数

然后x=2构造将x的值设置为2

做int x=2是一个简短的形式

您可以使用intx=2,n=3结构作为简写来定义和设置多个变量

for循环,此处使用大括号标记块的开始和结束,即for循环中重复的代码部分:

for (int i=1; i<=n; i++) {
    result*=x;
}
变量实例化可以但不必用于设置变量,通常使用单个变量作为循环的索引。在您的例子中,一个值为1的变量i的新实例化


循环条件用于测试循环是否应继续。只要这句话是真的,循环就会发生。在你的情况下,测试是由i和n组成的。只要i小于或等于,它就是result=result*x的简写形式;或者+x,-x,或者/x。我到处都看到a*=b和a=a*b是一样的,但它并不能解释它是如何工作的。。。你还想知道什么?在什么情况下我应该使用它。。。尽可能地使用它;这是一个不能使用*=:int result;结果*=2;因为result需要有一个值才能执行*=。在我看来,a=a*2和a*2一样好。事实上,第二个版本需要更多的脑力操。而编程,就像任何文本一样,是一种交流,就像你和你的同事一样,是与计算机的交流。所以清晰总是好的。@Erk如果没有初始化,两个版本都同样无效。至于哪个版本更具可读性,这是非常主观的,最终取决于惯例。在我看来,在有经验的开发人员中,缩短的方式更具表现力,也更为传统。@shmosel:我在回答两个不同的问题。现在我回答另一个问题;o根据我的经验,大多数非常有经验的程序员倾向于搬到其他地方,所以你最多只能和中级程序员一起工作。。。但是,IRL你必须处理这两种形式。。。
for (int i=1; i<=n; i++) {
    result*=x;
}
for ([variable instantiations]; [condition]; [loop instruction])
System.out.println(result);