运算符
01.基本的算法运算符
基本的算术运算符
package com.itheima.operator;
public class OperatorDemo1 {
public static void main(String[] args) {
// 目标:掌握基本的算术运算符的使用。
int i = 5; // Shift + F6
int j = 2;
System.out.println(i + j);
System.out.println(i - j);
System.out.println(i * j);
System.out.println(i / j); // 2 ==> 注意:两个整数相除的结果一定是整数
System.out.println(1.0 * i / j); // 2.5 1.0应该放在前面
System.out.println(i / j * 1.0); // 2.0
System.out.println(i % j); // 1
System.out.println("-------------------------------------------------");
int a = 5;
System.out.println("abc" + a); // "abc5"
System.out.println(5 + a); // 10
System.out.println(a + 'a'); // 5 + 97 = 102
System.out.println("itheima" + a + 'a'); // "itheima5a"
System.out.println("itheima" + (a + 'a')); // "itheima102"
System.out.println(a + 'a' + "itheima"); // "102itheima"
}
}
运行结果如下:
7
3
10
2
2.5
2.0
1
-------------------------------------------------
abc5
10
102
itheima5a
itheima102
102itheima
package com.itheima.operator;
import java.util.Scanner;
public class OperatorTest2 {
public static void main(String[] args) {
// 需求:把一个三位数拆分成个位 十位 百位 输出。
// 1、接收三位数
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
System.out.println("三位数是:" + number);
// 2、开始拆分数字 : number = 321
int ge = number % 10;
System.out.println("个位是:" + ge);
int shi = number / 10 % 10;
System.out.println("十位是:" + shi);
int bai = number / 100;
System.out.println("百位是:" + bai);
}
}
02.自增、自减
package com.itheima.operator;
public class OperatorDemo3 {
public static void main(String[] args) {
// 目标:自增自减运算符
int a = 10;
a++; // 等价于 a = a + 1;
++a; // 是一样的效果
System.out.println(a);
int b = 10;
b--; // 等价于 b = b - 1;
--b; // 是一样的效果
System.out.println(b);
// 注意事项:自增和自减只能用在变量的前后,不能用在字面量的前后。
// System.out.println(2++); // 报错
// System.out.println(2--); // 报错
System.out.println("----------------------------------------------");
// 注意1:自增自减非单独使用的时候,放在变量的前面。会先加变量再用变量
int i = 10;
int rs = ++i; // 先加再用
System.out.println(i); // 11
System.out.println(rs); // 11
int j = 10;
int rs2 = j++; // 先用再加
System.out.println(j); // 11
System.out.println(rs2); // 10
System.out.println("----------------------------------------------");
int m = 5;
int n = 3;
// m 5 6 5 4 5
// n 3 2 3 4
// result 5 + 5 + 2 + 3 + 2 + 4 + 4 + 4
int result = m++ + --m + --n + 3 + n++ + ++n + --m + m++;
System.out.println(m);
System.out.println(n);
System.out.println(result);
}
}
运行结果如下:
12
8
----------------------------------------------
11
11
11
10
----------------------------------------------
5
4
29
03.赋值运算符
package com.itheima.operator;
public class OperatorDemo4 {
public static void main(String[] args) {
//目标:赋值运算符
//微信钱包,余额是6元,红包收4元。
int money = 6;
int red = 4;
money +=red;//等价于money = (int)(money+red);
System.out.println(money);
byte a = 12;
byte b = 13;
//byte c =(byte)(a+b);
a += b;//等价于a =(byte)(a+b) 自带强制类型转换
System.out.println(a);
System.out.println("---------------");
int i = 10;
int j = 5;
//i +=j;//等价于i=(int)(i+j)
//i -=j;//等价于i=(int)(i-j)
//i *=j;//等价于i=(int)(i*j)
//i /=j;//等价于i=(int)(i/j)
i %= j;//等价于i=(int)(i%j)
System.out.println(i);
}
}
运行结果如下:
10
25
---------------
0
04.关系运算符
package com.itheima.operator;
public class OperatorDemo5 {
public static void main(String[] args) {
//目标:掌握关系运算符
int a = 10;
int b = 5;
boolean result = a > b;
System.out.println(result);
System.out.println(a > b);//true
System.out.println(a >= b);//true
System.out.println(a < b);//false
System.out.println(a <= b);//false
System.out.println(a == b);//false
System.out.println(a != b);//true
System.out.println("----------------");
int i = 10;
int j = 10;
System.out.println(i > j);//false
System.out.println(i >= j);//true
System.out.println(i < j);//false
System.out.println(i <= j);//true
System.out.println(i == j);//true
System.out.println(i != j);//false
//注意事项:判断是否相等一定用==,原因是=是用来做赋值操作的。
int m = 10;
int n = 5;
// System.out.println(m=n);赋值操作了
System.out.println(m == n);//false
}
}
运行结果如下:
true
true
true
false
false
false
true
----------------
false
true
false
true
true
false
false
05.逻辑运算符
package com.itheima.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
//目标:掌握逻辑运算符
//需求:判断手机是否满足条件。
//要求:内存大于等于128且尺寸大于等于6.7
int storage = 256;
double size = 6.78;
//&:要求前后条件都是true,结果才是true,只要有一个是flase结果就一定是false
System.out.println(storage >= 128 & size >= 6.7);//true
double height = 175.8;
int money = 10;
//需求:要么身高超过173.0,要么年收入大于等于30万。
// | : 只要前后条件有一个是true,结果就一定是true,必须前后条件都是false结果才是false.
System.out.println(height > 173 | money >= 30); // true
// ! 取反,你真它假 你假它真
System.out.println(!(2 > 1)); // false
System.out.println(!(2 < 1)); // true
System.out.println(!false); // true
System.out.println(!true); // false
// ^ 前后条件都一样结果是false,必须前后条件不一样结果才是true
System.out.println(false ^ false); // false
System.out.println(true ^ true); // false
System.out.println(true ^ false); // true
System.out.println(false ^ true); // true
// && : 结果跟&是一样的,但是&&发现左边条件是false的话右边条件不执行。&发现左边条件即使是false还是会执行右边条件。
int i = 8;
int j = 100;
// System.out.println(i > j & ++j > 10); // false
System.out.println(i > j && ++j > 10); // false
System.out.println(j);
// || : 结果跟|是一样的,但是||发现左边条件是true的话右边条件不执行。|发现左边条件即使是true还是会执行右边条件。
int m = 999;
int n = 100;
// System.out.println(m > n | ++n > 2);
System.out.println(m > n || ++n > 2);
System.out.println(n);
}
}
运行结果如下;
true
true
false
true
true
false
false
false
true
true
false
100
true
100
06.三元运算符、运算符的优先级问题
package com.itheima.operator;
public class OperatorDemo7 {
public static void main(String[] args) {
// 目标:掌握三元运算符。
double score = 59.5;
String result = score >= 60 ? "考试通过" : "挂科了";
System.out.println(result);
// 需求:求两个整数的较大值。
double height1 = 185.4;
double height2 = 198.5;
double max = height1 > height2 ? height1 : height2;
System.out.println("最高身高是:" + max);
// 需求:求三个整数的较大值。(拓展)
int i = 424;
int j = 1424;
int k = 44;
// // 先找出前两个的较大值。
// int temp = i > j ? i : j;
// // 再与第三个找
// int max2 = temp > k ? temp : k;
// System.out.println("较大值:" + max2);
// 拓展:三元运算符的嵌套(了解)
int max2 = i > j ? i > k ? i : k : j > k ? j : k;
System.out.println("较大值:" + max2);
System.out.println("===========================================");
System.out.println( 10 > 3 || 10 > 3 && 10 < 3); // &&高于|| true
System.out.println( (10 > 3 || 10 > 3) && 10 < 3); // () 优先级最高 false
}
}
运行结果如下:
挂科了
最高身高是:198.5
较大值:1424
===========================================
true
false