1. 关于自增运算符的例题
int n = 10;
n += (n++) + (++n);
System.out.println(n);//32
2. 关于逻辑运算符的例题
class Test {
public static void main (String [] args) {
boolean x=true;
boolean y=false;
short z=42;
if((z++==42)&&(y=true))z++;
if((x=false) || (++z==45)) z++;
System.out.println(“z=”+z);//46
}
}
需要注意的点
short s = 42;
System.out.println("s==42?" + (s==42));//true
3. 如何理解Java运算符的结合性?
所有的数学运算符都认为是从左到右运算的,Java 语言中大部分运算符也是从左到右结合的,只有单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
当有多中运算符参与运算的时候,先要考虑优先级,有相同优先级的就看结合性以决定运算顺序。
因为这样,所以,如果没有两个相同优先级的运算,就不存在考虑结合性的问题了。一个 ?: 是体现不出来结合性的。
a?b:c?d:e
以上代码等价于
a?b:(c?d:e)
4. 对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串
System.out.println("请输入你的性别:(男/女)");
String gender = scan.next();//"男"
char genderChar = gender.charAt(0);//获取索引为0位置上的字符
System.out.println(genderChar);
5. 获取区间[a, b]内的随机数的公式
(int)(Math.random() * (b - a + 1) + a) -> [a, b+1)