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 < /代码>。请您再次检查。您基本上是询问预增量和后增量之间的差异,以及预减量和后减量。考虑增加编辑器中的行间距,这样您就不必在每行代码之间设置空行。