1.字符串连接符
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
2. 条件运算符
语法格式:x?y:z
三目条件运算符
此外:三目运算也可以if...else..代替。
3.运算符优先级的问题
注意:逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或)。如:
- a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c 。
4.自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。
自动类型转换特例
5.强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值。
新手要注意哦!不能在布尔类型和任何数值类型之间做强制类型转换。
6.基本类型转化时常见错误和问题
操作比较大的数时,要留意是否溢出,尤其是整数操作时。
L和l 的问题:
不要命名名字为l的变量,l容易和1混淆。long类型使用大写L不要用小写。
7.简单的键盘输入和输出
为了我们能写出更加复杂的程序,可以让我们的程序和用户可以通过键盘交互,我们先学习一下简单的键盘输入和输出。
使用Scanner获取键盘输入:
运行结果如图
8.控制语句
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。控制语句分为三类:顺序、选择和循环。
任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量、选择语句、循环语句”组成。
9.选择结构
主要的选择结构有:
- if单选择结构
- if-else双选择结构
- if-else if-else多选择结构
- switch结构
10.if单选择结构
语法结构:
if(布尔表达式){
语句块
}
if语句对布尔表达式进行一次判定,若判定为真,则执行{}中的语句块,否则跳过该语句块。
if单选择结构流程图
if单选择结构
下面是用if单选结构实现的一个摇骰子的小游戏
运行效果
Math类的使用
1.java.lang包中的Math类提供了一些用于数学计算的方法。
2.Math.random()该方法用于产生一个0到1区间的double类型的随机数,但是不包括1。
int i = (int) (6 * Math.random()); //产生:[0,5]之间的随机整数。
新手雷区
1.如果if语句不写{},则只能作用于后面的第一条语句。
2.强烈建议,任何时候都写上{},即使里面只有一句话!
11.if-else双选择结构
语法结构:
if(布尔表达式){
语句块1
}else{
语句块2
}
当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。
流程图如下:
if-else结构
使用条件运算符
12.if-else if-else多选择结构
语法结构:
if(布尔表达式1){
语句块1;
}else if(布尔表达式2){
语句块2;
}...
else if(布尔表达式n){
语句块n;
}else{
语句块n+1;
}
当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2;否则,继续判断布尔表达式3······;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。
13.switch多选择结构
语法结构:
Switch(表达式){
Case 值1:
语句序列1;
[break];
Case 值2:
语句序列2;
[break];
..........
[default:
默认语句;]
}
switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。
根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。
大家要注意,当布尔表达式是等值判断的情况,可以使用if-else if-else多选择结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多选择结构。
switch多选择结构的流程图
switch结构