Java while(&x2B;&x2B;i<;--j)和while之间的区别是什么;而(i&"x2B&"lt;j--)??

Java while(&x2B;&x2B;i<;--j)和while之间的区别是什么;而(i&"x2B&"lt;j--)??,java,Java,我尝试下面这个程序,找到两个数字之间的中点 class FindMidPoint { public static void main(String args[]) { int i, j; i = 100; j = 200; // find midpoint between i and j while(++i < --j) ; System.out.println("Midpoint is " + i+" OR "+j); } } 类FindMidPoint { 公

我尝试下面这个程序,找到两个数字之间的中点

class FindMidPoint

{

public static void main(String args[])

{

int i, j;

i = 100;

j = 200;


// find midpoint between i and j

while(++i < --j) ;

System.out.println("Midpoint is " + i+" OR "+j);

}

}
类FindMidPoint
{
公共静态void main(字符串参数[])
{
int i,j;
i=100;
j=200;
//找到i和j之间的中点
而(++i<--j);
System.out.println(“中点为“+i+”或“+j”);
}
}
输出:

Midpoint is 150 OR 150

But If I make changing in while condition that is

while(i++<j--)

Then output is:

Midpoint is 16 OR 14
中点是150或150
但如果我在这种情况下改变

而(如果i=1和j=2,则i++。第一个比较2<1,第二个比较1<2。(在第一个比较中,递减/递增在比较之前完成,而在第二个比较中,递减/递增在比较之后完成)表达式中任何变量之前的
++
表示必须在表达式执行之前进行增量

比如说

int i=2;
int x = ++i + 2
这里因为
++
在i之前出现,所以首先在i上有一个增量,然后执行表达式。 所涉及的步骤是:

步骤1:

++i : i=(i+1) = 3
int x = i++ + 2 = 2 + 2 =4; // i is still 2 here since the increment didn't happen by now
步骤2:

int x = ++i + 2 = 3+2=5
所以在这个表达式执行之后:x=5和i=3

++i

但如果考虑后增量:

例如:

 int i=2;
 int x = i++ + 2;
这意味着增量将在执行该行之后发生。 这些步骤是:

步骤1:

++i : i=(i+1) = 3
int x = i++ + 2 = 2 + 2 =4; // i is still 2 here since the increment didn't happen by now
步骤2:

i++ : i=i+1 = 3;
因此在执行x=4和i=3之后

++i
您可以考虑增加值,然后在表达式中使用增加的值

i++
在表达式中使用该值,然后再将其递增

假设我们有以下代码:

int i = 100;
int j = ++i + 50;  // statement 1
这里的
j
的值为151,首先表示增量
i
,然后计算表达式,因此为101+50

让我们一起去吧

int j = i++ + 50;  // statement 2
这里
j
的值为150,表示首先计算表达式,然后增加值
i


然而,在执行第二条语句后,
i
将是101,它的全部内容都是关于精度的,在java中,每个操作符都有一个精度,与其他操作符相比,preincrement具有非常高的精度,而post increment最后出现。

这里应该应用pre和post之间的基本区别

预增量运算符++i:相当于将i替换为i+1,并在表达式中使用结果

while(++i < --j);
//read as while( (i_new = i_old+1) < (j_new =j_old -1) );
//In next expression i will be value of i_new and j value will be j_new
while(++i<--j);
//读作while((i_new=i_old+1)<(j_new=j_old-1));
//在下一个表达式中,i是i_new的值,j值是j_new
增量后运算符i++:相当于在当前表达式中使用相同的i值。在下一个立即表达式中使用增加的值

while(i++ < j--);
//read as while( (i_old < j_old );
//In next expression(even in next iteration of same above while) i will be value of i_old+1 and j value will be j_old-1
while(i++<代码>输出不是<代码>中点是16或14 < /代码>。请您再次检查。您基本上是询问预增量和后增量之间的差异,以及预减量和后减量。考虑增加编辑器中的行间距,这样您就不必在每行代码之间设置空行。