Java 我不知道';我不懂输出!a=(+;+;c)-(b+;+;)

Java 我不知道';我不懂输出!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,

这是一个示例实践。我试图弄明白,但我总是得到错误的答案。假设用户在第一次提示时输入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, 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