自增、自减操作符

  • 自增自减操作符是可以直接改变变量值的操作符
  • 前加加、前减减(先赋值后使用
  • 后加加、后加加(先使用后赋值
  • 实际上是一个+1操作和一个赋值操作的缩写形式(a++;  a=a+1;  a+=1;
public class IncreaseDecrease {
    public static void main(String[] args) {
        int a = 1;
        System.out.println("a++=" + a++); // 先使用再+1 此时:a的值为1
        System.out.println("a=" + a); // a的值为2

        a=1;
        System.out.println("++a=" + ++a); // 先+1再使用 此时:a的值为2
        System.out.println("a=" + a); // a的值为2

        int b = 10;
        System.out.println("b--=" + b--); // 此时:b的值为10
        System.out.println("b=" + b); // b的值为9
    }
}

 

 

习题一、打印26个英文字母

知识点

  • 自动类型转换:char 到 int
  • 强制类型转换:int 到 char
  • 字符和数字的对应关系,字符集和编码
  • 字符串的加法:任何数据和字符串都可以相加,将这个数据的字符串和另一个字符串拼接起来
  • 自增操作符
public class Print26Char {
    public static void main(String[] args) {
        char ch = 'A';
        int num = ch; // char -> int 自动类型转换
        System.out.println( num + "\t" + ((char)(num++)) ); // int -> char 强制类型转换(可能会丢失精度)
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
        System.out.println( num + "\t" + ((char)(num++)) );
    }
}

难点解析:强制类型转换公式:(目标转换类型)(转换前的源数据)

 

习题二、找到可以被整除的数

知识点

  • 取模运算:整数的取模运算(%)
  • 布尔运算:== 操作符
  • 自增运算
public class FindDiv {
    public static void main(String[] args) {
        int dividend = 35; // 被除数
        int divisor = 9; // 除数
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor== 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
        System.out.println(dividend+"可以整除"+divisor+"吗?" + ((dividend++) % divisor == 0));
    }
}

难点解析:利用自增运算符的特性,这里用到的是后加加,这样就实现了先使用原值再赋值得到新值的目的。