算数运算符
文章目录
运算符介绍
运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等
算数运算符
需要注意的运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
++ | 自增(前):先运算后取值 | a = 2 ; b = ++a | a = 3; b = 3 |
++ | 自增(后):先取值后运算 | a = 2 ; b = a++ | a = 3; b = 2 |
– | 自减(前):先运算后取值 | a = 2 ; b = --a | a = 1; b = 1 |
– | 自减(后):先取值后运算 | a = 2 ; b = a– | a = 1; b = 2 |
+ | 字符串相加 | “hsp” + “edu” | “hsp edu” |
算数运算符的使用
除法的使用
System.out.println(10/4); //2
System.out.println(10.0/4); // 2.5
double d = 10/4; //2.0
System.out.println(d); // 2.0
取余的使用
-
java取余的本质 a % b = a - a / b * b
-
python和java取余的区别
-
java取余
System.out.println(10%3); //1
System.out.println(-10%3); // -1, 10/-3 = -3
System.out.println(10%-3); //1
System.out.println(-10%-3); //-1 , -10/-3 = 3
- python取余
10 % 3 = 1
-10 % 3 = 2
10 % -3 = -2
-10 % -3 = -1
- java遵循的取整方式为:向零取整,python遵循的取整方式为:向下取整
自增的使用
- 作为独立语句使用时,前++和后++都完全等价于 i = i + 1
- 作为表达式使用时:
- 前++: ++i 先自增后赋值
- 后++: i++ 先赋值后自增
int j = 8;
int k = ++j; //等价 j = j +1, k = j
System.out.println("k=" +k + "j=" + j); // 9,9
int j = 8;
int k = j++; //等价 k = j; j = j+1
System.out.println("k=" +k + "j=" + j); // 8 ,9
算术运算符练习
- 面试题1
int i = 1;
i = i++; //规则使用临时变量:(1) temp=i; (2) i = i+1 ; (3)i = temp
System.out.println(i); //1
- 面试题2
int i = 1;
i = ++i; //规则使用临时变量: (1) i = i+1 ; (w) temp=i; (3)i = temp
System.out.println(i); //2
关系运算符(比较运算符)
- 介绍
- 关系运算符的结果都是boolean型
- 关系表达式经常用在if结构的条件中或循环结构的条件中
逻辑运算符
- 介绍
- 用于连接多个条件(多个关系表达式),最终的结果也是一个boolean
- 逻辑运算符一览
- 短路与 &&, 短路或 || , 取反 !
- 逻辑与 &, 逻辑或 |, ^ 逻辑异或
a | b | a&b | a&&b | a或b | a短路或b | !a | a^b |
---|---|---|---|---|---|---|---|
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true | false |
- && 和 &使用区别
- &&短路与:如果第一个条件为False,则第二个条件不会判断,最终结果为false,效率高
- &逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低
int a = 4;
int b = 9;
if(a < 1 && ++b < 50){
System.out.println("ok");
} // 第一个条件为false,后面的不会执行
System.out.println("a=" + a + " b=" + b) ; // a = 4; b = 9
-
||和|使用区别
- ||短路或:如果第一个结果为true,后面的不会判断
-
逻辑异或^, 当 a 和 b 不同时,则结果为true, 否则为false
赋值运算符
- 注意事项
- 复合赋值运算符会进行类型转换
byte b = 3;
b += 2; //等价 b = (byte)(b+2)
b ++; // b = (byte)(b+1)
三元运算符
三元运算符介绍
- 基本语法
条件表达式 ? 表达式1:表达式2;
- 如果条件表达式为true,运算后的结果是表达式1
- 如果条件表达式为false,运算后的结果是表达式2
int a = 10;
int b = 99;
// 1. a > b为false
// 2. 返回b--, 先返回b的值,然后再b-1
int result = a > b ? a++ : b--;
System.out.println("result=" + result); // 99
三元运算符细节
- 表达式1和表达式2要为可以赋给接受变量的类型(或者可以自动转换,或者强制转换)
运算符优先级
- (),{}等
- 单目运行 ++ –
- 算术运算符
- 位移运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
- 赋值运算符
标识符
标识符规则
-
标识符概念
- java对各种变量,方法和类等命名时使用的字符序列成为标识符
- 凡是自己可以起名字的地方都叫标识符
-
标识符的命名规则
- 由26个英文字母大小写,0-9,_或$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- java中严格区分大小写,长度无限制
- 标识符不能包含空格
标识符规范
- 包名: 多单词组成时所有字母都小写
- 类名、接口名:多单词组成时,所有单词的首字母大写
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。 例如 tankShotGame
- 常量名:所有字母都大写,不同单词之间用下划线连接
键盘输入
import java.util.Scanner;
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入名字);
String name = myScanner.next();