Java for循环中的分号放错了位置

Java for循环中的分号放错了位置,java,for-loop,Java,For Loop,当我在做作业的时候,我犯了一个小错误,那就是;在for循环中,类似于下面的代码 for(i=0;i<n;i++);{ n=n*i; } for(i=0;i执行此操作时:for(i=0;i如果在for循环后放置分号,则其语法在技术上是正确的。因为它被视为一个空语句-这意味着不需要执行任何操作 就你而言— for(i=0;i<n;i++); for(i=0;i由于分号结束了语句,[for(i=0;i=0或n,如果n

当我在做作业的时候,我犯了一个小错误,那就是;在for循环中,类似于下面的代码

for(i=0;i<n;i++);{
    n=n*i;
}

for(i=0;i执行此操作时:
for(i=0;i如果在for循环后放置分号,则其语法在技术上是正确的。因为它被视为一个空语句-这意味着不需要执行任何操作

就你而言—

for(i=0;i<n;i++);  

for(i=0;i由于分号结束了语句,[for(i=0;i
代码应为:

for(i=0;i<n;i++) {
     n=n*1;
}

for(i=0;i
for
循环只能执行一个代码块或一条语句,甚至是空语句。所以这里的分号表示空语句(不执行任何操作的语句)


换句话说,您可以为(int i;i得到6的原因很简单。在上一次迭代中,i的值从5变为6,循环不会进行另一次迭代,因为i=6,它不再满足
for循环的条件。因为n=1和i=6,那么n*i的输出是6。

您使
for
循环完全由一个空的语句。然后循环后面是大括号中的块,但该块不是循环的一部分。编译器从未到达并执行括号中的块。我非常怀疑此代码是否能满足您的要求。除了语法错误之外,如果
n>=0
n
,如果
n<0
@gunner-不正确,它将使用当前值
i
n
执行大括号内的行一次,我投票将此问题作为非主题关闭,因为OP对其进行了询问和回答,然后将其更改为完全不同的问题。a类{public static void main(String args[]){int i,n=1;对于(i=1;i@RangaGanesh这不会有太大变化。
for
循环只能执行一个代码块或一条语句,即使代码块或语句为空。
for(i=0;i<n;i++) {
     n=n*1;
}
for(int i; i<n; i++);{
    foo();
}
for(int i; i<n; i++){
    //do nothing, except i++
}
//after loop finishes 
{
    foo();
}
for(int i; i<n; i++);
    foo();
for(int i; i<n; i++){
}
foo();
int i, n=1;
for(i=1; i<=5; i++);
n=n*i;
System.out.println(n);
for(i=1; i<=5; i++);
n=n*i;
for(i=1; i<=5; i++){}
n=n*i;
for(i=1; i<=5; i++)//<--removed semicolon
    n=n*i;
for(i=1; i<=5; i++){
    n=n*i;
}
for(i=1; i<=5; i++)
    ;
{
    n=n*i;
}