Java中对增量和减量运算符有哪些限制?

增量运算符将操作数的值加1,而减数运算符将操作数的值减1。我们使用这些运算符在对值执行语句之后对循环的值进行递增或递减。

示例

public class ForLoopExample {
   public static void main(String args[]) {
      //打印数字1到10-
      for(int i = 1; i<=10; i++) {
         System.out.print(" "+i);
      }
      System.out.println(" ");
      //打印数字10到1-
      for(int i = 10; i>=1; i--) {
         System.out.print(" "+i);
      }
   }
}

输出结果

1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1

对增量和减量运算符的限制

  • 您不能对常量使用增量和减量运算符,如果这样做,则会产生编译时错误。

示例

public class ForLoopExample {
   public static void main(String args[]) {
      int num = 20;
      System.out.println(num++);
      System.out.println(20--);
   }
}

输出结果

ForLoopExample.java:5: error: unexpected type
      System.out.println(20--);
                        ^
   required: variable
   found: value
1 error
  • 您不能在Java中嵌套两个递增或递减运算符,如果这样做,则会生成编译时错误-

示例

public class ForLoopExample {
   public static void main(String args[]) {
      int num = 20;
      System.out.println(--(num++));
   }
}

输出结果

ForLoopExample.java:4: error: unexpected type
      System.out.println(--(num++));
                               ^
required: variable
found: value
1 error
  • 声明变量final后,您将无法修改其值。由于递增或递减运算符会更改操作数的值。不允许将这些运算符与最终变量一起使用。

示例

public class ForLoopExample {
   public static void main(String args[]) {
      final int num = 20;
      System.out.println(num++);
   }
}

输出结果

ForLoopExample.java:4: error: cannot assign a value to final variable num
   System.out.println(num++);
                      ^
1 error
  • 不允许将递增和递减运算符与布尔变量一起使用。如果您仍然尝试增大或减小布尔值,则会生成编译时错误。

示例

public class ForLoopExample {
   public static void main(String args[]) {
      boolean bool = true;
      System.out.println(bool++);
   }
}

输出结果

ForLoopExample.java:4: error: bad operand type boolean for unary operator '++'
      System.out.println(bool++);
                            ^
1 error