Java基础之算术运算符
【摘要】 1 运算符 1.1 算术运算符 public static void main(String[] args) { int a = 6; int b = 4; System.out.println(a + b); //10 System.out.println(a - b); //2 System.out.println(...
1 运算符
1.1 算术运算符
public static void main(String[] args) {
int a = 6;
int b = 4;
System.out.println(a + b); //10
System.out.println(a - b); //2
System.out.println(a * b); //24
System.out.println(a / b); //1
System.out.println(a % b); //2
//除法得到商,取余得到余数
//整数相除只能得到整数,要想得到小数要有浮点数参与
System.out.println(6.0 / 4); //1.5
}
1.1.1 字符的“+”操作
- 字符进行“+”操作时,拿的是字符在计算机底层 对应的数值 进行操作
- ‘A’ > 65
- ‘a’ > 97
- ‘o’ > 48
- 算术运算符表达式中 多个基本数据类型 的值的时候,整个算术运算符的 类型 会 自动提升
- 提升规则:
- 1.byte类型、short类型和char类型都会提升到int类型
- 2.整个表达式的类型自动提升到表达式中 最高等级操作数同样类型
等级顺序:byte、short、char -> int -> long -> float -> double
- 范例:
public class Demo {
public static void main(String[] args) {
int i = 10;
char c = '0';
System.out.println(i + c); //75
//char cj = i + c;
//char类型会自动提升到int类型
int j = i + c;
System.out.println(j); //75
//10.1是double类型高于int类型
//int k = 10 + 10.1;
double k = 10 + 10.1;
}
}
1.1.2 字符串的“+”操作
- 当 “+” 操作出现字符串时,这个 “+” 是 字符串连接符 ,而不是算术运算符
- 范例:
System.out.println('it'+6+66) //it666
- 在 “+” 操作中,如果出现字符串就是连接符,否则就是算术运算。当连续 “+” 操作时,从左到右依次执行。
- 范例:
System.out.println(1+99+'it') //100it
1.2 赋值运算符
注意事项
:扩张的赋值运算符 隐含 强制类型转换。
1.3 自增自减运算符
- ++ 和 - - 可以放变量前面也可以放变量后面
- 单独使用时, ++ 和 - - 放变量前后结果都是一样的
- 参与操作使用时,如果放变量后面,先拿变量参与操作,后拿变量做++或- -;
参与操作使用时,如果放变量前面,先拿变量做++或- -,后拿变量参与操作。 - 范例:
public class Demo {
public static void main(String[] args) {
//单独使用
int i = 10;
//i++;
++i;
System.out.println(i); //11
//参与操作使用++在后面
int b = 10;
int j = b++;
System.out.println(b); //11
System.out.println(j); //10
//参与操作使用++在前面
int c = 10;
int k = ++c;
System.out.println(c); //11
System.out.println(k); //11
}
}
1.4 关系运算符
- 关系运算符的结果都是boolean类型,要么true,要么false
1.5 逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | 同真为真,其余为假(满足两个为真) |
| |
逻辑或 | 同假为假,其余为真(满足一个为真即可) |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
1.6 短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 作用与&相同,但是有短路效果 |
|| |
短路或 | 作用与竖线相同,但是有短路效果 |
- 范例:
public class Demo {
public static void main(String[] args) {
int i = 10;
int j = 20;
//&& :具有短路效果,符号左边为false的时候,右边就不执行
//如果符号左边为true,右边要继续执行
System.out.println((i++>100) && (j++>100)); //false & false,
System.out.println("i="+i); //11
System.out.println("j="+j); //20
}
}
-
注意事项
:1、逻辑与 &:无论左边真假,右边都要执行
2、短路与 &&:如果左边为真,右边执行;如果 左边为假,右边不执行
3、逻辑或 | : 无论左边真假,右边都要执行
4、短语或 ||:如果左边为假,右边执行;如果 左边为真,右边不执行
1.7 三元运算符
- 格式:关系表达式 ? 表达式1 :表达式2;
- 范例:a > b ? a : b;
- 计算规则:
首先计算关系 表达式的值 如果值为 true,表达式1 的值就是运算结果;
如果值为 false , 表达式2 的值就是运算结果。 - 范例:
public class Demo {
public static void main(String[] args) {
int i = 10;
int j = 20;
//输出两个数据中的较大值
int max = i > j ? i : j;
System.out.println("max=" + max); //20
}
}
1.8 Scanner使用的基本步骤
-
导包的三种方式:
- 1、手动导包:
import java.util.Scanner
; - 2、快捷键导包:创建好Scanner对象后,鼠标放在Scanner上按Alt+Enter
- 3、自动导包:写Scanner单词创对象时,按tab补全导包
- 1、手动导包:
-
导包的步骤:
- 1.导包(导包必须在定义类上面)
import java.util.Scanner;
- 2.创建对象(只有sc是变量名可以变,其他都不可以变)
Scanner sc = new Scanner(System.in);
- 3.接收数据
int i = sc.nextInt(); //i是变量名可以变,其他都不能变 sc.nextInt(); //Ctrl+alt+v:补全生成左边的内容
1.9 案例:三个和尚
- 案例:输入三个和尚的身高,利用三元运算符比较求出最高的和尚
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
//从键盘输出三个身高求出最高值
Scanner sc = new Scanner(System.in);
//键盘输入三个数值
int height1 = sc.nextInt();
int height2 = sc.nextInt();
int height3 = sc.nextInt();
int temp = (height1>height2) ? height1:height2;
int max = (temp>height3) ? temp:height3;
System.out.println(max);
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)