我不明白输出! a =(++ c) - (b ++)

时间:2015-01-29 10:25:51

标签: java

这是一个示例练习。我想弄明白,但我总是得到错误的答案。假设用户在第一个提示输入1 3 5,在第二个提示输入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 ++)

8 个答案:

答案 0 :(得分:6)

 a = (++c)-(b++);

基本相同
 c = c + 1; // pre-increment.
 a = c - b;
 b = b + 1; // post increment.

答案 1 :(得分:2)

a = (++c)-(b++);表示a等于increased c(即6)减去b (increase after this line),在此行中为3,但接下来将为4。所以a = 6-3 = 3b = 4 * 4 = 16

答案 2 :(得分:1)

a = (++c) - (b++)

表示a = (c=c+1)-b; b = b+1;

前缀(++)意味着我们要先改变变量然后再使用它,后缀意味着首先我们添加b,然后改变它的值。 What is the difference between prefix and postfix operators?

答案 3 :(得分:1)

表达式a = (++c) - (b++): 首先,c增加1,然后在表达式中使用,而b在表达式中使用,然后递增。因此a被评估为6-3=3

答案 4 :(得分:1)

一元运算符++可以放在变量之前或之后。

将它放在之前意味着“在评估此表达式之前递增1”并将其置之后表示“在评估此表达式后递增1”。

所以,如果我说(伪代码):

a = 5
print ++a

那会产生:

6

因为增量在传递到打印之前发生。但是,如果我这样做了:

a = 5
print a++
print a

输出结果为:

5
6

随着增量在传递到打印后发生。

所以++ c的计算结果为5 + 1 = 6,而b ++的计算结果为3(b的初始值)。含义(++ c) - (b ++)的计算结果为3。

答案 5 :(得分:0)

a =(++ c) - (b ++)

++ c是一个preincrement,这意味着你在进行计算之前先加1 b ++是一个后增量,因此在进行计算后将其加1:

所以公式意味着:

a等于(c加1)减去b。然后将1添加到b。

答案 6 :(得分:0)

根据您的输入,a = 1, b = 3, c=5

a = (++c)-(b++)评估为:

  1. ++ c,将c设为5 + 1并将值返回为6
  2. b ++,返回值3,现在将b设为3 + 1
  3. a设为6 - 33
  4. b * = b,此处已为4,因此4 * 416

答案 7 :(得分:0)

Post Increment(n ++):首先执行语句,然后将值增加一。

Pre Increment(++ n):首先将值增加1然后执行语句。

例如

int a = 8,i;

i = ++ a + ++ a + a ++; //答案:i = 9 + 10 + 10 = 20然后a = 8

将完成所有预增量,然后执行数学表达式,最后将完成后增量。

a =(++ c) - (b ++);

所以这里首先“c”将递增,然后“b”将被减去,结果将保存在“a”中,然后“b”将递增。