相关疑难解决方法(0)

C,C++,Java和C#中的前后增量运算符行为

免责声明: 这不是一个真实的例子.这只是这些语言如何运作的理论问题.

在发布和预增量运算符方面,C/C++,C#和Java之间究竟有什么区别?

这是我用VC++ 10,Java 1.6和C#4获得的

int a = 2;
int b = a++ + a++;
int c = ++a + a++ + a++;

      +-----+------+------+----+
      |  C  | C++  | Java | C# |
+-----+-----+------+------+----+
| a   |  7  |  7   |   7  |  7 |
+-----+-----+------+------+----+
| b   |  4  |  4   |   5  | 5  |
+-----+-----+------+------+----+
| c   | 15  |  15  |  16  | 16 |
+-----+-----+------+------+----+
Run Code Online (Sandbox Code Playgroud)

c c# c++ java

57
推荐指数
2
解决办法
2万
查看次数

Java之前和之后的增量

我只是想创建一个小Java-Puzzle,但我很困惑.这个难题的一部分是:

下面这段代码做了什么:

public class test {
    public static void main(String[] args) {
        int i = 1;
        i += ++i + i++ + ++i;

        System.out.println("i = " + i);
    }
}
Run Code Online (Sandbox Code Playgroud)

它输出9.

我的(至少部分)错误的解释:

我不太确定,但我认为之后的术语i +=会被评估为:

在此输入图像描述

所以

int i = 1;
i += ++i + i++ + ++i;
Run Code Online (Sandbox Code Playgroud)

是相同的

int i = 1;
i += ((++i) + (i++)) + (++i);
Run Code Online (Sandbox Code Playgroud)

这从左到右进行评估(参见前后增量java评估).

第一个++i增量i,以2和回报2.所以你有了:

i = 2;
i += …
Run Code Online (Sandbox Code Playgroud)

java

11
推荐指数
1
解决办法
604
查看次数

Java - 在发送到方法之前递增变量

情况

嗯,这种方法是管理一个接受列表作为参数的转换,但肯定看起来不可扩展.

List<Long> array_list_data= new ArrayList<>();

public void get_Data() {
    long0 = array_list_data.get(0);
    long1= array_list_data.get(1);
    long2= array_list_data.get(2);
}
Run Code Online (Sandbox Code Playgroud)

之后,它将创建一个与long字段不同的类.

问题

但是,如果我们必须将此数据扩展到此列表中的100个参数,该怎么办?

到目前为止我所做的是:

List<Long> array_list_data= new ArrayList<>();

public void get_Data() {
    int k = 0;        
    long0= array_list_data.get(k);
    long1= array_list_data.get(k++);
    long2= array_list_data.get(k++);
}
Run Code Online (Sandbox Code Playgroud)

为什么递增k不是正确的方法呢?

java arrays increment

0
推荐指数
1
解决办法
163
查看次数

Java困惑:为什么c的值是8而不是9?

我很困惑为什么下面的代码中 c = 8 而不是 9。

int a = 5, b = 3;
System.out.println(a + b);
int c = a + b++; //
b++;
System.out.println(a + b);
System.out.format("a=%d, b=%d, c=%d %n", a,b,c);
    
    
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
139
查看次数

在复杂的语句中,增量运算符如何在Java中表现

int x = 3; 
System.out.println(x++ + ++x + x++); // 13 
Run Code Online (Sandbox Code Playgroud)

为什么结果是13?

我的逻辑:

  1. ++x 在中心给4
  2. 4 + 4 + 4 = 12 所以结果必须是12.

java

-1
推荐指数
1
解决办法
70
查看次数

标签 统计

java ×5

arrays ×1

c ×1

c# ×1

c++ ×1

increment ×1