Java 我不知道';我不懂输出!a=(+;+;c)-(b+;+;)
这是一个示例实践。我试图弄明白,但我总是得到错误的答案。假设用户在第一次提示时输入1.35,在第二次提示时输入1.5 2.0 2.5Java 我不知道';我不懂输出!a=(+;+;c)-(b+;+;),java,Java,这是一个示例实践。我试图弄明白,但我总是得到错误的答案。假设用户在第一次提示时输入1.35,在第二次提示时输入1.5 2.0 2.5 // Problem6 import.java import java.util.Scanner; class problem2{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int a, b, c; double x,
// Problem6
import.java import java.util.Scanner;
class problem2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a, b, c;
double x, y, z;
System.out.print("Enter three integers: ");
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
System.out.print("Enter three doubles: ");
x = sc.nextDouble();
y = sc.nextDouble();
z = sc.nextDouble();
a = (++c)-(b++);
x += (z-y);
b *= b;
y = c*z;
c = (int)(b-x);
System.out.println("a=" + a + ", b=" + b + ", c=" + c);
System.out.println("x=" + x + ", y=" + y + ", z=" + z);
System.out.println("c/a=" + c/a);
System.out.println("c%a=" + c%a);
}
}
输出:
- a=3,b=16,c=14
- x=2.0,y=15.0,z=2.5
- c/a=4
- c%a=2 请帮忙!我真的需要 具体来说,我不明白a=3和b=16是怎么回事。 我不懂a=(++c)-(b++)
a=(c=c+1)-b;b=b+1代码>
前缀(++)意味着我们要先更改变量,然后使用它,后缀意味着先添加b,然后更改它的值 a=(++c)-(b++)
表示a
等于增加的c
(即6)减去b(在此行后增加)
,此行为3,但下一行为4。所以a=6-3=3
和b=4*4=16
a = (++c)-(b++);
基本上与
c = c + 1; // pre-increment.
a = c - b;
b = b + 1; // post increment.
对于表达式a=(++c)-(b++)
:
首先,c
递增1,然后在表达式中使用,b
在表达式中使用,然后递增。因此a
的计算结果为6-3=3
一元运算符++可以放在变量之前或之后
放在前面意味着“在计算该表达式之前递增1”,放在后面意味着“在计算该表达式之后递增1”
如果我说(psuedo代码):
这将产生:
6
因为增量在传递到打印之前发生。但是,如果我这样做:
a = 5
print a++
print a
产出将是:
5
6
因为增量在传递到打印后发生
因此,++c的计算结果为5+1=6,b++的计算结果为3(b的初始值)。意义(++c)-(b++)计算为3。a=(+++c)-(b++)
++c是一个预增量,这意味着在进行计算之前向其添加1
b++是一个后增量,因此在进行计算后向其添加1
因此,公式的意思是:
a等于(c加1)减去b。然后根据您的输入,将1添加到b.,a=1,b=3,c=5
a=(++c)-(b++)
的计算结果如下:
++c、 将c
设置为5+1
并将返回值设置为6
b++,返回值3
,现在将b
设置为3+1
将a
设置为6
-3
给出3
b*=b,这里已经是4
,所以4*4
是16
Post Increment(n++):首先执行语句,然后将值增加1
预增量(++n):首先将值增加1,然后执行语句
比如说
int a=8,i
i=++a+++a+a++;//答案:i=9+10+10=20,然后a=8
所有预增量都将完成,然后执行数学表达式,最后执行后增量
a=(++c)-(b++)
所以这里,首先“c”将递增,然后“b”将被减去,结果将保存在“a”中,然后“b”将递增。在a=(+++c)-(b++)
c在减法之前递增,在减法之后递增,所以它变成了a=6-3。啊,好的,我怎么得到b呢?因为它是b=b*b;假设b=3,它不等于16?b
在减法后递增,因此它的值为4。然后是4*4=16。“这是一个示例练习”-在这种情况下,对其进行一点扩展,并在进行调试时练习一些调试技术(例如,一步一步地移动,并在每一步观察每个变量的值)。b已递增,因此它是4*4=16,它不应该是b=b+1;顺便说一句,如果你写了a=(++c)-(c++)
那么a
将是0。c将永远不会再次递增,因此pl移除最后一行c=c+1@RajenRaiyarela您的编辑不正确,因为c+1不会更改c的值,这就是我第一次添加行c=c+1的原因。现在我认为这个解释更正确,这对我来说更有意义。非常感谢。没问题,很高兴我帮了忙
a = 5
print a++
print a
5
6