相关疑难解决方法(0)

Java增量/减量运算符 - 它们的行为方式,功能是什么?

我开始学习Java已经3天了.我有这个程序,我不理解main方法++--运算符中的代码.我甚至不知道该怎么称呼它们(这些操作员的名字)任何人都可以解释我的全部内容.

class Example {
    public static void main(String[] args) {
         x=0;
         x++;
         System.out.println(x);
         y=1;
         y--;
         System.out.println(y);
         z=3;
         ++z;
         System.out.println(z);
     }
}
Run Code Online (Sandbox Code Playgroud)

java oop operators

3
推荐指数
1
解决办法
698
查看次数

使用 lambda 表达式的后缀与前缀增量

这个问题绝对不是重复的,因为我不是指一般的 post/precrement 评估,而是专门指 lambda 表达式中增量的使用,这可证明是不同的。每个人都可以自由确认代码只会在您通常期望变量值增加的地方返回零。对此没有任何答复。

我很清楚后缀和前缀增量的不同评估和增量时刻。尽管如此,我还是不明白为什么这仅返回零:

Stream.iterate(0, e -> e++)
            .limit(10)
            .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

检查时,我看到 e 在第一次迭代期间被初始化为 0,然后递增。所以第二次迭代应该产生 e = 1,但显然它没有。我错过了什么?

此外,如果我反转增量,它会按预期工作,列出从 0 到 9 的所有数字:

Stream.iterate(0, e -> ++e)
            .limit(10)
            .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

lambda pre-increment post-increment java-8

3
推荐指数
1
解决办法
444
查看次数

Java中的++int是什么?

可能的重复:
解释 Java 中 post 和 pre 增量运算符的工作
int++ 和 ++int 之间有什么区别?

在 Java 中,什么是++int?它有什么作用?这是什么意思?

(抱歉,上次我没有正确提问。)

java int

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

为什么java语句评估会像这样发生?

int z = 1;
System.out.println(z++ == ++z);
System.out.println(++z == z++);
Run Code Online (Sandbox Code Playgroud)

输出将是:

false
true
Run Code Online (Sandbox Code Playgroud)

我不明白为什么,请向我解释一下.

java pre-increment post-increment

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

当赋值运算符的优先级最低时,y=x++ 和 y=x-- 有何不同?

我是 Java 新手。刚刚发现在表达式中, y=x++, y 假设 x 的值,x 变为 +1。如果我听起来很愚蠢,请原谅我,但根据优先级的顺序,赋值运算符在最后。所以 x++ 不应该先发生,然后是赋值。提前致谢。

java operator-precedence

2
推荐指数
1
解决办法
90
查看次数

这个加号在这个Java代码中的作用是什么?

我遇到了这段代码:

int a = 1;
int k = ++a + a++ + + 1;
System.out.println(k);
Run Code Online (Sandbox Code Playgroud)

我认为编译器会给出错误,但结果是5?最后一个'+'(加号)符号的目的是什么?是否标志1不是负面或是?为什么Java允许这个作为有效的声明?

java

1
推荐指数
3
解决办法
135
查看次数

数组计数中i ++和i + 1之间的差异

考虑:

int[] aryNums=new int[5];

for (int i=0; i<=5; i++)
{
    aryNums[i] = i++;
    System.out.println(aryNums[i]);
}
Run Code Online (Sandbox Code Playgroud)

为什么不给我数组中的值为1,2,3,4,5?相反,它会给出一个像0,0和错误的异常.

如果我改变了

aryNums[i] = i++;  \to

aryNums[i] = i+1;
Run Code Online (Sandbox Code Playgroud)

我在数组中得到值{1,2,3,4,5}.i ++和i + 1之间的区别是什么?

java increment post-increment

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

基于使用java的递归

public void length() {
    System.out.println(length(head, 0));
}
public int length(Node he, int count) {
    if(he!=null) {
        // System.out.println(he.data +"   "+count++);
        // count++;
        // return length(he.next, count);
        return length(he.next, count++);
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我必须找到链表的长度.如果我运行相同的代码,我得到的长度为0.但是,当我使用注释代码,我得到正确的长度.为什么会这样?

java recursive-datastructures

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

arr1[i++] = arr2[j++] 背后的逻辑是什么?

我明白如果我有以下任务

arr[i++] = 1 相当于

arr[i] = 1; 
i++;
Run Code Online (Sandbox Code Playgroud)

但确实

arr1[i++] = arr2[j++]

相当于

arr1[i] = arr2[j];
i++;
j++;
Run Code Online (Sandbox Code Playgroud)

关于什么

int i = 0;
while(i++ < 5){ 
    // do something...
}
Run Code Online (Sandbox Code Playgroud)

机器是否执行 //do something一个然后增加 1 然后评估 i 当前是否 < 5?

有人可以帮我理解这一点吗?

java algorithm

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

array[++variable] 代表什么?

示例代码在这里:

static class stack 
{
    int top=-1;
    char items[] = new char[100];

    void push(char x) 
    {
        if (top == 99)
            System.out.println("Stack full");
        else
            items[++top] = x;
    }
}
Run Code Online (Sandbox Code Playgroud)

当 items[++top] 出现时到底发生了什么?

java arrays iteration

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

为什么输出30而不是31?

public class Class1 {

    public static void main(String[] args) {
        int myFirstNumber =20;
        int mySecondNumber=10;
        System.out.println(myFirstNumber+++mySecondNumber);
    }
}
Run Code Online (Sandbox Code Playgroud)

mySecondNumber应该增加到11,从而得到总和31

java increment

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

j = i + 1和j = ++ i之间的差异;

在下面的代码中,在(j = i + 1 ...)和(j = ++ i ...)的内部for循环中得到不同的结果.请问任何人都可以解释在初始化过程中for循环中会发生什么?

    public class DuplicateElementsInArray {

    public static void main(String[] args) {
            String[] names = {"Java", "Python", "C++", "JavaScript", "Java",  "Ruby", "C"};

            //This is a worst  Solution
            for(int i = 0; i < names.length; i++) {
                //for(int j = i++; j < names.length; j++) {
                //for(int j = ++i; j < names.length; j++) {
                for(int j = i + 1; j < names.length; j++) {
                    //System.out.println("j: " + j);
                    if(names[i].equals(names[j]))
                        System.out.println("duplicate element: …
Run Code Online (Sandbox Code Playgroud)

java

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

x =(x = 1)+(x = 2)*(++ x)*(x ++) - 为什么这个表达式19的输出?

我执行了代码,输出是19,但我不明白为什么.

public static void main(String[] args) 
{
    int x = 0;
    x = (x = 1) + (x = 2) * (++x) * (x++);
    System.out.println(x);
}
Run Code Online (Sandbox Code Playgroud)

java core operators

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