敲一遍,敲一遍,在敲一遍!
/* 算术运算符演示 */
class Demo1 {
public static void main(String[] args) {
// 定义两个int类型变量
int num1 = 10;
int num2 = 20;
// num1 + num2结果赋值给num1
num1 = num1 + num2; // num1 = 30 num2 = 20
// 变量在代码运行的过程中是会发生改变。
num1 = num1 * num2; // num1 = 600 num2 = 20
num1 = num1 - num2; // num1 = 580 num2 = 20
num1 = num1 / num2; // num1 = 29 num2 = 20
// 20 ÷ 29 = 0 ...... 20
// 5 ÷ 2 = 2 ...... 1
num1 = num2 % num1; // num1 = 20 num2 = 20
/*
num2的值从开始到最后没有发生改变
num2从开始没有被赋值过
*/
System.out.println(num1);
System.out.println(num2);
}
}
/* 偷懒专用算术运算符 */
class Demo2 {
public static void main(String[] args) {
// 定义两个变量
int num1 = 10;
int num2 = 20;
// num1 = num1 + num2;
num1 += num2; // num1 = 30 num2 = 20;
num1 *= num2; // num1 = 600 num2 = 20;
num1 -= num2; // num1 = 580 num2 = 20;
num1 /= num2; // num1 = 29 num2 = 20;
num1 %= num2; // num1 = 9 num2 = 20; num1 = num1 % num2; 29 % 20 ==> 9
System.out.println(num1);
System.out.println(num2);
}
}
/* 关系运算符 */
class Demo3 {
public static void main(String[] args) {
// 定义一个boolean 类型变量
boolean ret = true;
// 5 > 10 结果赋值给ret 这个boolean类型变量
ret = 5 > 10;
System.out.println(ret); // false
ret = 5 < 10;
System.out.println(ret); // true
ret = 5 >= 5;
System.out.println(ret); // true
ret = 5 <= 2;
System.out.println(ret); // false
ret = 5 != 5;
System.out.println(ret); // false
ret = 5 == 4;
System.out.println(ret); // false
}
}
/* 自增运算符前后关系演示 */
class Demo4 {
public static void main(String[] args) {
int num1 = 10;
// 双引号内容是所见即所得
/*
自增运算符在操作数之后,首先操作数原始数据参与该行代码运行
当前代码运行结束之后,再进行自增操作。
先执行当前行代码,再执行自增操作
*/
System.out.println("num1++ : " + num1++); // num1++ : 10
System.out.println("num1 : " + num1); // num1 : 11
/*
自增运算符在操作数之前,首先执行自增操作,num1 += 1;
num1 ==> 12 然后在进行数据展示
先执行自增,在参与当前行代码执行
*/
System.out.println("++num1 : " + ++num1); // ++num1 : 12
System.out.println("num1 : " + num1); // num1 : 12
}
}
/* 自减运算符演示 */
class Demo5 {
public static void main(String[] args) {
int num = 10;
System.out.println("num-- : " + num--); // num-- : 10
System.out.println("num : " + num); // num : 9
System.out.println("--num : " + --num); // num-- : 8
System.out.println("num : " + num); // num : 8
}
}
/* 自增自减面试题1 */
class Demo6 {
public static void main(String[] args) {
int num = 5;
int ret = num++ * ++num;
System.out.println("ret : " + ret);
System.out.println("num : " + num);
}
}
/* 常见面试题2 */
class Demo7 {
public static void main(String[] args) {
int num = 5;
++num++;
/*
Demo7.java:5: 错误: 意外的类型
++(num++);
^
需要: 变量
找到: 值
1 个错误
*/
System.out.println(num);
}
}
/* 逻辑运算符演示 */
class Demo8 {
public static void main(String[] args) {
// 定义一个boolean类型的变量
boolean ret = false;
ret = 5 > 3 && 10 > 8;
System.out.println("ret : " + ret); // true
ret = 5 < 3 && 10 > 8;
System.out.println("ret : " + ret); // false
ret = 5 < 3 || 10 > 8;
System.out.println("ret : " + ret); // true
ret = 5 < 3 || 10 < 8;
System.out.println("ret : " + ret); // false
ret = !(5 > 3);
System.out.println("ret : " + ret); // false
}
}
/* 逻辑与短路原则 */
class Demo9 {
public static void main(String[] args) {
int num = 5;
boolean ret = false;
/*
只要有错后面的就不看了吗 为了效率是吗
逻辑与的情况下:
同真为真,有假【即】假
当出现一个条件为false之后,整个逻辑与表达式的结果为
false,从false之后的其他所有条件都不会执行。
计算机的节约性能问题!!!
*/
ret = num > 10 && ++num > 1;
System.out.println("ret : " + ret);
System.out.println("num : " + num);
}
}
/* 逻辑或短路原则问题 */
class Demo10 {
public static void main(String[] args) {
int num = 10;
boolean ret = false;
/*
逻辑或短路原则
有【真】即真,同假为假
只要发现一个条件为真,整个表达式结果已经确定为真。
从true条件开始其他条件不需要执行
*/
ret = num > 5 || ++num > 20;
System.out.println("ret : " + ret); // true
System.out.println("num : " + num); // 10
}
}