目录
1. 随机数Random类
在编写程序的过程中,如果要产生一个随机数就需要用到随机数类Random.Random类也是JDK中的类.可直接使用.
Random类里有两个常用方法如下:
方法1:public int nextInt(int maxValue)
功能:产生0到maxValue范围的随机整数,包含0,不包含maxValue.
方法2:public double nextDouble()
功能:产生0到1范围的随机小数,包含0.0,不包含1.0
2. 流程控制语句
以前写的代码程序都是从第一行执行到最后一行,按先后顺序执行.
使用流程控制语句可以控制程序的执行流程,
流程控制语句包括if选择结构和switch选择结构.
2.1 if 选择结构
通过if选择结构可以做到选择性的执行代码,如果满足某种条件,就进行某种处理.
if语句的具体语法格式如下:
if (条件语句) {
执行语句
……
}
上述格式中,条件语句的结果是一个布尔值,
当结果为true时,{}中的执行语句才会执行.
2.2 if … else 语句
if … else 语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理.
if … else 语句具体语法格式如下:
if (判断条件) {
执行语句1
……
}
else {
执行语句2
……
}
上述格式中,判断条件是一个布尔值.
当判断条件为true时,if后面{}中的执行语句1会执行.
当判断条件为false时,else后面{}中的执行语句2会执行.
if … else 语句的执行流程:
Eg1. 判断奇偶数
2.3 if … else if … else 语句
if … else if … else 语句用于对多个条件进行判断,进行多种不同的处理.
if … else if … else 语句具体语法格式如下:
if (判断条件1) {
执行语句1
……
} else if (判断条件2) {
执行语句2
……
}
……
else if (判断条件n) {
执行语句n
} else {
执行语句n+1
}
上述格式中,判断条件是一个布尔值.当判断条件1为true时,if后面{}中的执行语句1会执行.当判断条件1为false时,会继续判断条件2,如果为true则执行语句2,以此类推,如果所有的判断条件都为false,则意味着所有条件均未满足,else后面{}中的执行语句n+1会执行.
if … else if … else 语句的执行流程
Eg1. 判断成绩等级
2.4 嵌套 if 选择结构
嵌套 if 选择结构就是在一个 if 选择结构里还包括其他的 if 选择结构.
嵌套 if 选择结构语法如下:
if (条件1)
{
if (条件2)
{
代码块1
}
else
{
代码块2
}
}
else
{
代码块3
}
"=="和"equals()":
"==":
【1】如果比较的对象是基本数据类型,则比较数值是否相等;
【2】如果比较的是引用数据类型,则比较的是对象的内存地址是否相等。
分析:
∵Java中只有值传递
∴无论比较基本数据类型或是引用数据类型的变量,其本质比较的都是值.
Ps:其中引用类型变量的值是对象的地址。
"equals()":
"equals()"方法存在于Object类中,而Object类是所有类的直接或间接父类。
在使用Object类的"equals()"时,其比较的是两个对象的地址,等同于使用"==".
如果重写覆盖了"equals()"方法,则根据内容不同比较方式不同.
equals()方法存在两种使用情况:
【1】某类没有覆盖equals()方法:
通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象.
使用的默认是Object类equals()方法.
Object类中equals方法源码:
publicbooleanequals(Objectobj){
return(this==obj);
}
【2】某类覆盖了equals()方法:
重写内容不同,比较方式不同.
一般通过覆盖equals()方法来比较两个对象中的属性是否相等;
若它们的属性相等,则返回true(即判断两个对象相等)。
在Integer中,比较的是对应数字的值.
在String中,先判断地址的值,相同返回true,地址不相同进一步判断字符串内容,
内容相同返回true,反之返回false.
总结:
1.==用于基本数据类型时比较的是值
2.==用于包装类(引用类)时比较对象地址
3.equals方法未重写时比较对象地址,等同于使用"=="
4.equals方法重写后根据重写内容判断比较方式:
Object类(地址)、Integer类(值)、自定义类(自主定义)、
String类(先比较地址,后比较内容,两者都不相同返回false,否则返回true).
2.5 Switch 语句
switch 语句是一种很常用的选择语句,它和if选择语句不同,它是根据表达式的值决定程序执行哪一段代码.
switch 语句的语法格式如下:
switch (表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
……
case 目标值n:
执行语句n
break;
default:
执行语句n+1;
break;
}
Switch 语句会先计算表达式的值然后拿表达式的值和 case 中的目标值进行匹配,从目标值1开始一次往下,如果找到了和表达式的值相等的目标值,则执行对应目标值后面的执行语句.如果没有找到任何匹配值,则执行 default 后的执行语句.每个case执行语句后面会有一个 break 语句,当执行到 break 的时候就会跳出 switch 语句.
switch 语句的执行流程
switch 语句的简写形式
2.6 while 循环语句
选择结构语句可以让程序选择性的执行代码,如果想让一段代码反复执行就需要用到循环结构语句.循环结构语句有3种: while循环语句、do while 循环语句、for 循环语句.
while 循环语句的语法结构
while (循环条件){
执行语句
……
}
{}中的代码为循环体,当循环条件成立时会去执行该循环体,循环体里的代码执行完毕后再去判断循环条件,如果循环条件成立则再次执行循环体,往复循环,直到循环条件不成立,循环结束,不再执行循环体.
循环条件结果是一个布尔值,若为true表示成立,若为false表示不成立.
while 循环的执行流程
2.7 do…while 循环语句
do…while 循环语句和 while 循环语句功能类似
do…while 循环语句的语法结构
do {
执行语句
…
} while (循环条件);
do…while 循环语句的循环条件在循环体的后面,所以 do…while 循环会至少执行一次循环体,这也是它和while循环的不同之处(while循环的循环体有可能一次都不执行).
do…while 循环的执行流程
2.8 for 循环语句
for 循环语句是最常用的循环语句,一般用在循环次数已知的情况下.
for 循环语句的语法格式
for (①初始化表达式;②条件判断语句;④控制条件语句){
③循环体
……
}
for 循环语句由四部分组成,程序执行时会按照如下步骤进行:
第1步:执行①初始化表达式.
第2步:执行②条件判断语句,如果成立则执行③循环体.
第3步:执行④控制条件语句,第一次.
第4步:再次执行②条件判断语句,
如果仍成立则继续执行③循环体.
第5步:执行④控制条件语句,第二次.
往复循环……
第n步:执行④控制条件语句,不符合循环条件,结束循环.
for 循环的执行流程
Eg1. 求1至100的整数之和.
Eg2. 输入一个整数,使用for循环按加法表格式输出.
2.9 循环嵌套
循环嵌套指的是在一个循环中包含另外一个循环.
循环嵌套的语法格式
for (初始化表达式;循环条件;操作表达式){
……
for (初始化表达式;循环条件;操作表达式){
执行语句
……
}
……
}
Eg1. 九九乘法表