相关疑难解决方法(0)

赋值后增量表达式

为什么这个程序的输出是10,为什么不是11?

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

java variable-assignment

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

为什么这个表达式i + = i ++与Java和C不同?

我知道前缀和后缀操作...... ++ i和i ++之间的区别等等.

但我想我在这里遗漏了一些东西.您可以在下面找到代码:

package test;

public class Test
{
    public static void main (String[] args)
    {
        int i=0;

        i+=i++;
        System.out.println(i); // Prints 0

        i = i + (i++);
        System.out.println(i); // Prints 0

        i = i + (i+1);
        System.out.println(i); // Prints 1

    }
}
Run Code Online (Sandbox Code Playgroud)

所以输出是:

0
0
1
Run Code Online (Sandbox Code Playgroud)

我在C中尝试了相同的代码:

#include <stdio.h>
#include <string.h>

main()
{
    int i=0;

    i+=i++;

    printf("%d", i);   // prints 1

    i = i + (i++);
    printf("%d", i);   // prints 3

    i = i + (i+1);
    printf("%d", …
Run Code Online (Sandbox Code Playgroud)

c java

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

java中后增量的行为

我知道这是一个愚蠢的例子,但我确实想知道它是如何工作的.
通常,后增量给出旧值并在之后将变量加1.

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

在第3行,它打印出"1".为什么保持不变?

根据我的理解,在第2行,右侧为变量a分配1.

后增量"++"将1加1.不应该是2而不是1吗?

java

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

如何在java 8中评估第2行?

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

post increment operator的优先级高于赋值运算符,所以我想f的值(即1)用于赋值,f增加,然后输出为2(因为f的值现在为2),但输出为1 ,但是怎么样?我哪里错了?

我的解释在下面的代码中得到了正确的答案

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

在这种情况下输出为2.

assignment-operator post-increment java-8

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

Java方法()++ VS方法()+ 1

我正在努力,Class.Method()++但它不起作用.

简单的例子:

人类

public class person {
    private int age;

    public void age(int value) {
        this.age = value;
    }
    public int age() {
        return this.age;
    }
}
Run Code Online (Sandbox Code Playgroud)

在主类

以下语句出现错误p1.age()++ :

public static void main(String[] args) {
     person p1 = new person();
     p1.age(p1.age()++); // Get an error
}
Run Code Online (Sandbox Code Playgroud)

但下面工作正常:

public static void main(String[] args) {
         person p1 = new person();
         p1.age(p1.age()+1); // It works fine
    }
Run Code Online (Sandbox Code Playgroud)

主要问题:

为什么p1.age()++会出错但p1.age()+1不是?

PS:

我知道我可以这样做:

person p1 = new …
Run Code Online (Sandbox Code Playgroud)

java

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

为什么这段代码会进入无限循环?

请考虑以下代码:

public class Game {

    public static void main(String[] args) {

        int x = 0;
        while (x < 1) {
          x = x++;
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

使用我的编译器,这段代码进入无限循环,但为什么呢?

首先,我们把价值xx,而只有那么我们就加1 x,之后我会想到1 < 1会是假的,while循环将终止...

但不,那不会发生.

那么无限循环可能是什么原因呢?

java loops while-loop

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

为什么x = x ++; 不像我期望的那样工作?

我总是希望它的工作原理如下所示:"x = x ++"后的x是什么?

但是当我试图测试它时:

int x = 0;
x = x++;
printf("x = %d\n", x);
Run Code Online (Sandbox Code Playgroud)

结果不是我想象的那样但是1.我们在VS2012和g ++(版本4.7)中测试了它.

请注意,此代码按预期打印0:

int x = 0;
int y = x++;
printf("y = %d\n", y);
Run Code Online (Sandbox Code Playgroud)

c++ expression operators

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

n = n--;为什么与之前的值相同

标题是不言自明的。考虑以下代码:

   int n = 5;
   n = n--;
Run Code Online (Sandbox Code Playgroud)

它给出 n = 5。据我了解,首先计算表达式 n-- ,返回 5 (即 POSTdecrement)。该表达式被分配给 LHS,此处为 n。执行完之后,n 就会减少。因此我预计 n = 4。

为什么我没看到4?

java

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

如果声明不工作.我的代码出了什么问题?

我是java的初学者,我不知道我的代码有什么问题.非常感谢您的协助.

此代码应检查数组中的任何元素是否小于tc,然后应增加其值.

int pay1  = 190;
int pay2  = 1175;
int pay3  = 455;
int pay4  = 345;
int tc    = 400;
int[] pay = { pay1, pay2, pay3, pay4 };

for(int i = 0; i < pay.length; i++)
{
    if(pay[i] < tc)
    {
        pay[i] = pay[i]++;
        System.out.println(pay[i]+",");
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays if-statement arraylist

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

请解释为什么Java和C为此代码提供不同的答案

public class Test
{
    public static void main(String[] args) {
        int i = 10;
        i = i++;
        System.out.println("value of i is : " + i);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是: 10

当我执行类似的代码时C,输出是11.

c java

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

For循环不按范围给出值

       for(OPV=230;OPV<245;OPV++)
       {
           for(IKW=1.3;IKW<=2.9;IKW++)
           {
               for(OKW=0.01;OKW<0.50;OKW++)
              {
                     for(OPI=0.05;OPI<0.50;OPI++)
                     {
                           OPV=OPV+1;
                           IKW=IKW++;
                           OKW=OKW++;

                           System.out.println( OPV+""+IKW+"+OKW+"+OPI")
Run Code Online (Sandbox Code Playgroud)

我的for循环并没有根据我给出的范围给出结果.如果有的话,可以进行一些修改

java

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

在 Java 中 sum [i++] 是什么意思?

我正在练习 Java,现在我遇到了一个问题。我无法理解这段代码是什么意思。有人会一步一步解释吗?

整个程序是一个两个二进制数相加的程序:

import java.util.Scanner;
public class Exercise17 {
 public static void main(String[] args)
 {
  long binary1, binary2;
  int i = 0, remainder = 0;
  int[] sum = new int[20];
  Scanner in = new Scanner(System.in);

   System.out.print("Input first binary number: ");
   binary1 = in.nextLong();
   System.out.print("Input second binary number: ");
   binary2 = in.nextLong();

   while (binary1 != 0 || binary2 != 0) 
  {
 sum[i++] = (int)((binary1 % 10 + binary2 % 10 + remainder) % 2);
 remainder = (int)((binary1 % 10 + binary2 …
Run Code Online (Sandbox Code Playgroud)

java arrays

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

为什么i + 1会增加,而i ++则没有

让我们说我得到了这段代码:

public class Incrementor {

    private int i;

    public int getInt(){
        return i;
    }

    private void incrementA(){
        i = i+1;
    }

    private void incrementB(){
        i = i++;
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 当我在调用incrementA()之前调用getInt()该值时将为1.
  • 当我在调用incrementB()之前调用getInt()该值时将为0.

java

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