今日内容
- 运算符
- 键盘录入
- 选择流程控制语句
01. 算术运算符的基本用法
- 运算符
- 对常量和变量进行操作的符号
- 表达式
- 用运算符把常量或者变量连接起来符号,符合java语法的式子就可以称为表达式。
问题:
- 运算符的分类?
- 算数运算符有哪些?
总结:
1:
算数运算符(自增自减运算符)
赋值运算符
关系运算符[比较运算符]
逻辑运算符
三元运算符[三目运算符]
2: + - *
/ % ++ --
注意:
整数相除结果只能是整数
如果想计算出小数, 必须要有浮点类型数据参数运算
- 算术运算符取余和除法的区别
- / 得到的是商
- % 得到的余数
%运算符的应用场景:一般用于奇偶数的判断
任何一个数%2,结果不是0,就是1
问题:
12345 / 100 等于多少? 123
12345 % 100 等于多少? 45
12345 / 100 % 100 等于多少? 23
02. 字符和字符串参与加法操作
思考: System.out.println('a' + 1); // 输出结果? 98
注意: 当char类型再跟整数类型的数据进行运算的时候, 实际上是?
找到底层的ASCII数值,然后再进行运算
- 注意: 字符串在与任意数据类型用+号串联的时候都会 ?
产生新的字符串
- 问题:
System.out.println(1 + 'a' + "hei hei hei" + 'a'); // 结果? 98hei hei heia
- 转ppt中问答
03. 自增自减运算符的概述和用法
- ++ -- 运算符的基本应用是?
- 单独使用有什么效果?
- 参与运算使用有什么效果?
总结:
1: 就是完成数据自身+1,或者是自身-1的操作
2: 单独使用的话,++在前还是在后,效果都是完成自身+1
++a; a++;
3:
++在后:先将变量原本记录的值,取出来,做相应的操作,然后再完成自身+1的动作。
int x = 10;
int y = x++;
++在前:先完成自身+1的动作,然后再进行赋值
- 看程序写结果
看程序写结果
int x = 10;
int y = x++; // y = 10, x = 11;
int z = ++x; // x = 12; z = 12;
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println("---------------");
int x = 4;
// 4 + 6 + 60
int y = (x++)+(++x)+(x*10);
System.out.println("x="+x); // x=6
System.out.println("y="+y); // y=70
04. 赋值运算符的概述和用法
- 赋值运算符有哪些?
- 具体能完成什么操作?
总结:
基本赋值运算符: =
将等号右边的数据,赋值给左边
int a = 10;
扩展赋值运算符:
+= -= *= /= %=
+= : 是将符号左右两边的数据,做加法运算,然后将结果赋值给左边
问题:
下面的程序是否有问题,如果有问题,请指出并说明理由(必须掌握!!!!)
short s=1;
s=s+1; s是short类型,1是int类型,short和int相加的时候,会先将short提升为int
两个int相加的结果,还是int,把int结果赋值给short类型的变量,需要强转。
short s=1;
s+=1; 原因:底层自动做了强制类型转换 s = (short)(s+1);
05. 关系运算符(比较运算符)的基本用法和注意事项
- 关系运算符有哪些? 分别有什么作用?
- 其注意事项又是什么?
总结:
1: > < >= <=
== !=
比较运算符:无论简单还是复杂,结果都时boolean(true,false)
== : 比较两个数是否相等
!= : 比较两个数是否不等
2:
=和==要区分明白
=:赋值的
==:比较的
06. 逻辑运算符的概述和使用
- 逻辑运算符用于链接boolean类型的表达式, 或者是值.
- 逻辑运算符有哪些?
总结:
&(与) : 并且,当左右两边都为true的时候,结果才是true,换句话说,遇false则false
| (或) : 或者,遇true则true
---------------------------------------
!(非) : 取反
&& : 从最终结果来看,跟&的效果是一样的,也是与false则false,但是&&具有短路效果
需求:判断学员成绩,如果分数在90-100之间,输出优秀
int score = 100;
如果(score >= 90 && score <= 100){
优秀
}
|| : 遇true则true,也具备短路效果,当左边为true,右边就不执行了。
---------------------------------------------------
^(异或) : 了解
现象: 相同为false,不同为true(处对象)
特点:一个数,被另外一个数,异或两次,该数本身不变。
面试题:实现两个变量的数值交换, 不允许定义三方变量
public static void main(String[] args) {
int a = 10;
int b = 20;
a = a ^ b; // 10 ^ 20
b = a ^ b; // 10 ^ 20 ^ 20 --> 10
a = a ^ b; // 10 ^ 20 ^ 10 --> 20
System.out.println(a);
System.out.println(b);
}
问题:
&& & 有什么区别?
& : 无论左边返回的结果是true还是false, 右边都必须执行
&& : 左边返回false的时候, 右边就不再执行了.
int x = 3;
int y = 4;
System.out.println((++x < 2) && (y++ > 5));
System.out.println("x:" + x);
System.out.println("y:" + y);
07. 三元运算符的概述和使用
- 三元运算符的格式为?
- 其执行流程为?
总结:
1:
(比较表达式) ? 值1:值2;
2:
1. 先执行比较表达式
2. 看其结果是true还是false
true : 执行值1
false : 执行值2
08. 三元运算符之比较两个数据是否相同
- 案例演示
09. Scanner录入数据的基本步骤
- 为什么要有键盘录入?
- 为了让程序更加的灵活,达到人机交互的效果
- 想要实现键盘录入就需要Java已经写好的类,Scanner
- 为了让程序更加的灵活,达到人机交互的效果
- 如何实现键盘录入?
总结:
1: import java.util.Scanner; // 导包
// 导入包中的类,让java写好的类,和我们自己的类产生关联
2: 创建Scanner对象, 简单来说就是创建了一个专门用于键盘录入的机器
Scanner sc = new Scanner(System.in);
3: 调用机器中的功能,做到键盘录入
int num = sc.nextInt();
10. 键盘录入两个数据并求和
- 案例演示
public class Demo2_Scanner {
/*
* 键盘录入两个数据并求和
*
*/
public static void main(String[] args) {
// 1. 创建Scanner键盘录入对象(机器)
Scanner sc = new Scanner(System.in);
System.out.println("请输入两个整数:");
// 2. 使用机器的功能,做两次键盘录入
int num1 = sc.nextInt();
int num2 = sc.nextInt();
// 3. 求和
System.out.println(num1 + num2);
}
}
11. 流程控制语句之顺序结构概述和使用
- 什么是流程控制语句?
- 流程控制语句的分类有哪些?
总结:
1: 控制程序的 -> 执行流程
2:
顺序结构
选择结构
if
switch
循环结构 -> day03
12. if语句格式1的概述和使用
- if语句有几种格式?
- 格式1该如何书写?
- 其执行流程为?
总结:
1: 三种格式
2:
if(比较表达式){
语句体;
}
if(考试考了100分){
奖励100块钱
}
3:
1. 执行表达式
2. 看其结果是true还是false
true : 执行语句体
false : 不执行语句体
练习:
键盘录入两个整数,使用if语句判断,如果这两个数相等就打印“这两个数相等”
注意事项:
1.if语句的小括号后面,不要误写分号
2.if语句的语句体,如果是一条语句,大括号可以省略不写,但不建议!
13. if语句格式2的概述和使用
- 格式2
总结:
if(比较表达式){
语句体1;
}else{
语句体2;
}
举例:
if(考试考了100分){
System.out.println("奖励100块钱");
} else {
System.out.println("挨顿揍");
}
执行流程:
1. 执行比较表达式
2. 看其结果是true还是false
true : 执行语句体1;
false : 执行语句体2;
练习:
键盘录入一个整数,使用if语句判断,如果这个数是偶数则打印这个数是偶数
如果录入的数是奇数则打印这个数是奇数
14. if语句格式3的概述和使用
- A:格式3
总结:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
举例:
if(考试考了100分){
System.out.println("奖励100块钱");
} else if(考试考了80) {
System.out.println("奖励50块钱");
} else if(考试考了60){
System.out.println("这次就放过你");
} else {
System.out.println("挨顿揍");
}
- B:执行流程:
- 首先计算比较表达式1看其返回值是true还是false,
- 如果是true,就执行语句体1,if语句结束。
- 如果是false,接着计算比较表达式2看其返回值是true还是false,
- 如果是true,就执行语句体2,if语句结束。
- 如果是false,接着计算比较表达式3看其返回值是true还是false,
- 如果都是false,就执行语句体n+1。
- C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示
15. if语句实现获取两个整数的较大值
- 需求: 键盘录入两个数据, 获取两个数据中的最大值
- 分析:
A:看到键盘录入,我们就应该想到键盘录入的三步骤
导包,创建对象,接收数据
B:获取这两个数据的较大值,其实就是判断两个数据谁大,把大的输出就可以了。