运算符
运算符:对字面量或者变量进行操作的符号
基本算数运算符
算数运算符:
package dreamcode;
public class sumyunsuan {
public static void main(String[] args) {
// 算术运算符使用
int a = 10;
int b = 3;
System.out.println(a + b); // 13
System.out.println(a - b); // 7
System.out.println(a * b); // 30
System.out.println(a / b); // 3 整体强转
System.out.println(a * 1.0 / b); //3.3333333333333335 可以看到小数
System.out.println(a % b); // 1
}
}
数值拆分
需求:一个三位数,将其拆分为个位、十位、百位后、打印在控制台。
package dreamcode;
public class caifen {
public static void main(String[] args) {
// 拆分3位数,把个位,十位,百位分别输出
int date = 123;
// 个位
int g = date % 10;
System.out.println("个位:" + g); // 3
// 十位
int s = (date % 100) / 10;
System.out.println("十位:" + s); // 2
// 百位
int b = date / 100;
System.out.println("百位:" + b); // 1
}
}
+符号做连接符
"+"符号与字符串运算的时候用作连接符的,其结果依然是一个字符串。
package dreamcode;
public class lianjie {
public static void main(String[] args) {
int a = 5;
System.out.println("abc"+'a'); // abca
System.out.println("abc"+a); //abc5
System.out.println(5+a); //10
System.out.println("abc"+5+'a'); //abc5a
System.out.println("[欢迎snow]"+"喜获:"+a+"元"); //[欢迎snow]喜获:5元
}
}
通过这个"+"符号我们可以总结:能算则算,不能算就在一起。
自增自减运算符
注意:
1、++和–既可以放在变量的后面,也可以放在变量的前边。
2、++、–只能操作变量,不能操作字面量的。
package dreamcode;
public class zijia {
public static void main(String[] args) {
// 自增自减
int a = 10;
a++;
System.out.println(a); // 11
++a;
System.out.println(a); // 12
a--;
System.out.println(a); // 11
--a;
System.out.println(a); // 10
}
}
自增自减的使用注意事项:
++、–如果不是单独使用(如果表达式中、或者同时有其它操作),放在变量前后存在明显区别。
放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。
package dreamcode;
public class zijia {
public static void main(String[] args) {
// 自增自减
int a = 10;
int a2 = ++a;
System.out.println(a); // 11
System.out.println(a2); // 11
}
}
放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1。
package dreamcode;
public class zijia {
public static void main(String[] args) {
// 自增自减
int a = 10;
int a1 = a++;
System.out.println(a); //11
System.out.println(a1); // 10
}
}
自增自减的扩展案例
package dreamcode;
public class zijia {
public static void main(String[] args) {
// 自增自减案例
int i = 3;
int j = 5;
int re = i++ + ++i - --j + j-- - i-- + ++j +2;
System.out.println(i); //4
System.out.println(j); //4
System.out.println(re); //9
}
}
赋值运算符
基本赋值运算符
基本赋值运算符就是“=”。
int i = 3; // 先看“=”右边,把数据3赋值给左边的变量i存储。
扩展运算符
注意:扩展的赋值运算符隐含了强制类型转换。
package dreamcode;
public class fuzhi {
public static void main(String[] args) {
// 赋值运算符
int a = 10;
int b = 200;
// += 加后赋值
a += b; // 隐含等价操作 a = (int)(a + b) 自带强制类型转换
System.out.println(a); // 210
// -= 减后赋值
a -= b; // 隐含等价操作 a = (int)(a - b)
System.out.println(a); // 10
// *= 乘后赋值
a *= b; // 隐含等价操作 a = (int)(a * b)
System.out.println(a); // 2000
// /= 除后赋值
a /= b; // 隐含等价操作 a = (int)(a / b)
System.out.println(a); // 10
// %= 取余后赋值
b %= a; // 隐含等价操作 b = (int)(b % a)
System.out.println(b); // 0
}
}
关系运算符
关系运算符是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true).
注意:在做相等判断时,千万不要把==误写成=。
package dreamcode;
public class tiaojianyunsuanfu {
public static void main(String[] args) {
// 关系运算符
int a = 10;
int b = 10;
System.out.println(a == b); // true
System.out.println(a != b); // false
System.out.println(a > b); // false
System.out.println(a >= b); // true
System.out.println(a < b); // false
System.out.println(a <= b); // true
}
}
逻辑运算符
逻辑运算符可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。
package dreamcode;
public class luojiyunsuanfu {
public static void main(String[] args) {
// 逻辑运算符
double size = 9.8;
double storage = 16;
// 逻辑与 & 必须前后都是true结果才是true
System.out.println(size >= 6.95 & storage>= 8); // true
// 逻辑或 | 只要一个是true 结果就一定是true
System.out.println(size >= 10 | storage>= 20); // false
// 逻辑非 ! 取反
System.out.println(!true); // false
// 逻辑异或 ^ 必须两者不同才是true
System.out.println(false ^ true); // true
}
}
短路逻辑运算符
注意:逻辑与“&”,逻辑或“|”:无论左边是false还是true,右边都要执行。
public class luojiyunsuanfu {
public static void main(String[] args) {
// 逻辑运算符&& ||
int a = 10;
int b = 20;
System.out.println(a > 100 && ++b >10); // false
System.out.println(b); // 20
System.out.println(a > 100 & ++b >10); // false
System.out.println(b); // 21
System.out.println(a > 5 || ++b >10); //true
System.out.println(b); //21
System.out.println(a > 5 | ++b >10); //true
System.out.println(b); //22
}
}
三元运算符
格式: 条件表达式? 值1:值2;
执行流程: 首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
package dreamcode;
public class sanmuyunsunfu {
public static void main(String[] args) {
// 三元运算符
double score = 98;
String rs = score >= 60 ? "考试不通过" : "挂科";
System.out.println(rs); // 考试不通过
}
}
由此我们还可以通过三目运算符对三个数进行比大小(三元运算符的嵌套)。
package dreamcode;
public class sanmuyunsunfu {
public static void main(String[] args) {
// 三元运算符
int a = 10;
int b = 20;
int c = 15;
int maxd = a > b ? a > c ? a : c : b > c ? b : c;
System.out.println(maxd); // b
}
}
运算符优先级
在表达式中,那个运算符先执行后执行是要看优先级的,例如“、/”的优先级高于“+、-”。
键盘录入技术
完成java程序与用户交互,比如录入用户输入账户和密码等信息的时候就要用到键盘录入技术。(API应用程序编程接口,写好的程序(功能代码直接调用))从核心类库直接调用,API文档下载:
https://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html
键盘输入三个步骤:
package dreamcode;
// 调用包
import java.util.Scanner;
public class jianoan {
public static void main(String[] args) {
// 获取键盘扫描对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
// 接受整数
int age = sc.nextInt();
System.out.println("年龄是:" + age);
System.out.println("请输入你的姓名:");
// 接受字符
String name = sc.next();
System.out.println("欢迎:" + name);
}
}