一、运算符(掌握)
(1)算术运算符
①单目:+(取正)、-(取负)、++(自增)、- -(自减)
A:+的用法
正号 +1(通常会省略)
B:-的用法
负数 -4
C:++和–的用法
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;
int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;
int b = a++;
注意:
int i=1;
i=i++; //temp
(3)赋值运算符
A:=,+=,-=,*=,/=,%=等 扩展运算符是一个整体,不要分开
B:=叫做赋值运算符,也是最基本的赋值运算符
int x = 10; 把10赋值给int类型的变量x。
C:扩展的赋值运算符的特点
隐含了自动强制转换。
面试题:
short s = 1;
s = s + 1; // 数据类型有问题
s = (short) (s+1);
short s = 1;
s += 1; // 完全没有问题,通过运算符自动转换数据类型
(4)比较运算符
A:==,!=,>,>=,<,<=
B:无论运算符两端简单还是复杂最终结果是boolean类型。
C:千万不要把==写成了=
D:结果为Boolean类型的值
(5)逻辑运算符
A:&,|,^,!,&&,||
B:逻辑运算符用于连接boolean类型的式子(表达式+常量)
C:结论
&:有false则false
|:有true则true
^:相同则false,不同则true。
!:非true则false,非false则true
&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
运算符的优先级:()解决
(6)instanceof :用来确定对象所属的类(后面讲解)
二、键盘录入
(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。
(2)如何实现呢?目前就记住
A:导包
import java.util.Scanner;
位置:在package下面,并且在class的上边
B:创建对象/工具
Scanner sc = new Scanner(System.in);
C:获取数据
int x = sc.nextInt();
三 随机函数
随机生成函数:Random
A:导包
import java.util. Random;
位置:在package下面,并且在class的上边
B:创建对象/工具
Random ran = new Random ();
C:获取数据
public int nextInt(int maxValue) 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble() 产生[0,1)范围的随机小数,包含0.0,不包含1.0。
随机数公式:[min, max] == ran.nextDouble() * (max-min+1) + min
流程控制语句
(1)顺序结构 从上往下,依次执行
(2)选择结构 按照不同的选择,执行不同的代码
(3)循环结构 做一些重复的代码
四、if语句(掌握)
(1)三种格式
A:格式1
if(比较表达式) {
语句体;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体
如果是false,就不执行语句体
B:格式2
if(比较表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体1,语句体2 被忽略掉
如果是false,就执行语句体2
C:格式3
if(比较表达式1) {
语句体1;
}else if(比较表达式2){
语句体2;
}else if(比较表达式3){
预聚体3;
}
…
[else {
语句体n+1;
}]
执行流程:
判断比较表达式1的值,看是true还是false
如果是true,就执行语句体1,后面全部都被忽略掉
如果是false,就继续判断表达式2的值,看是true还是false
如果是true,就执行语句体2,后面全部都被忽略掉
如果是false,就继续判断表达式3的值,看是true还是false
...
如果都不满足,就执行语句体n+1
(2)注意事项
A:比较表达式无论简单还是复杂,结果是boolean类型
B:if语句控制的语句体如果是一条语句,是可以省略大括号的;
如果是多条,不能省略。
建议:永远不要省略。
C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
D:else后面是{},if后面是()。
E:第三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。
(3)案例:
A:比较两个数是否相等
B:获取两个数中的最大值
用三目运算符找出两个值当中的较大值
(4)三元运算符和if语句第二种(if else)格式的关系
所有的三元运算符能够实现的,if语句的第二种(if else)格式都能实现。
反之不成立。
五、switch语句(掌握)
(1)格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
[break;]
}
格式解释说明:
switch:说明这是switch语句。明白这是定值判断
表达式:可以是byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面的值就是要和表达式进行比较的值
break:表示程序到这里中断,跳出switch语句
default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else
(2)面试题
switch语句的表达式可以是byte吗?可以是long吗?可以是String吗?
可以,不可以,JDK7以后可以
(3)执行流程:
A:首先计算表达式的值
B:和每个case进行匹配,如果有就执行对应的语句体,看到break就结束。
C:如果没有匹配,就执行default的语句体n+1。
若没有default, 则什么都不执行。
(4)注意事项:
A:case后面只能是常量,不能是变量,并且多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略,因为switch语句遇到第一个满足条件的case语句,执行语句体之后,若没有break退出,之后的case语句均不进行判断,直接执行语句体
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了 满足结束
b:执行到末尾就结束了 自然死亡
(5)案例:
A:键盘录入一个数字(1-7),输出对应的星期几。
(6)if语句和switch语句各自的场景
A:if
针对boolean类型的判断
针对一个范围的判断
针对几个常量的判断
B:switch
针对几个常量的判断

本文详细介绍了Java中的基本语法,包括运算符的使用方法、键盘录入数据的实现方式、随机数生成函数的应用,以及流程控制语句如if语句和switch语句的使用技巧。
3859

被折叠的 条评论
为什么被折叠?



