为什么这个程序的输出是10,为什么不是11?
public class Test {
  public static void main(String[] args){
    int p = 10;
    p = p++;
    System.out.println(p);
  }
}
我知道前缀和后缀操作...... ++ 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
    }
}
所以输出是:
0
0
1
我在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", …我知道这是一个愚蠢的例子,但我确实想知道它是如何工作的.
通常,后增量给出旧值并在之后将变量加1.
int a = 1;
a = a++;
System.out.println(a);
在第3行,它打印出"1".为什么保持不变?
根据我的理解,在第2行,右侧为变量a分配1.
后增量"++"将1加1.不应该是2而不是1吗?
int f = 1;
f = f++;
System.out.println(f);
post increment operator的优先级高于赋值运算符,所以我想f的值(即1)用于赋值,f增加,然后输出为2(因为f的值现在为2),但输出为1 ,但是怎么样?我哪里错了?
我的解释在下面的代码中得到了正确的答案
int f = 1;
int g = f++;
System.out.println(f);
在这种情况下输出为2.
我正在努力,Class.Method()++但它不起作用.
简单的例子:
人类
public class person {
    private int age;
    public void age(int value) {
        this.age = value;
    }
    public int age() {
        return this.age;
    }
}
在主类
以下语句出现错误p1.age()++  :
public static void main(String[] args) {
     person p1 = new person();
     p1.age(p1.age()++); // Get an error
}
但下面工作正常:
public static void main(String[] args) {
         person p1 = new person();
         p1.age(p1.age()+1); // It works fine
    }
主要问题:
为什么p1.age()++会出错但p1.age()+1不是?
PS:
我知道我可以这样做:
person p1 = new …请考虑以下代码:
public class Game {
    public static void main(String[] args) {
        int x = 0;
        while (x < 1) {
          x = x++;
        }
    }
}
使用我的编译器,这段代码进入无限循环,但为什么呢?
首先,我们把价值x成x,而只有那么我们就加1 x,之后我会想到1 < 1会是假的,while循环将终止...
但不,那不会发生.
那么无限循环可能是什么原因呢?
我总是希望它的工作原理如下所示:"x = x ++"后的x是什么?
但是当我试图测试它时:
int x = 0;
x = x++;
printf("x = %d\n", x);
结果不是我想象的那样但是1.我们在VS2012和g ++(版本4.7)中测试了它.
请注意,此代码按预期打印0:
int x = 0;
int y = x++;
printf("y = %d\n", y);
标题是不言自明的。考虑以下代码:
   int n = 5;
   n = n--;
它给出 n = 5。据我了解,首先计算表达式 n-- ,返回 5 (即 POSTdecrement)。该表达式被分配给 LHS,此处为 n。执行完之后,n 就会减少。因此我预计 n = 4。
为什么我没看到4?
我是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]+",");
    }
}
public class Test
{
    public static void main(String[] args) {
        int i = 10;
        i = i++;
        System.out.println("value of i is : " + i);
    }
}
输出是: 10
当我执行类似的代码时C,输出是11.
       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")
我的for循环并没有根据我给出的范围给出结果.如果有的话,可以进行一些修改
我正在练习 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 …让我们说我得到了这段代码:
public class Incrementor {
    private int i;
    public int getInt(){
        return i;
    }
    private void incrementA(){
        i = i+1;
    }
    private void incrementB(){
        i = i++;
    }
}
incrementA()之前调用getInt()该值时将为1.incrementB()之前调用getInt()该值时将为0.java ×11
arrays ×2
c ×2
arraylist ×1
c++ ×1
expression ×1
if-statement ×1
java-8 ×1
loops ×1
operators ×1
while-loop ×1