自增、自减操作符
- 自增自减操作符是可以直接改变变量值的操作符
- 前加加、前减减(先赋值后使用)
- 后加加、后加加(先使用后赋值)
- 实际上是一个+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 + " " + ((char)(num++)) ); // int -> char 强制类型转换(可能会丢失精度) System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((char)(num++)) ); System.out.println( num + " " + ((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)); } }
难点解析:利用自增运算符的特性,这里用到的是后加加,这样就实现了先使用原值再赋值得到新值的目的。