====
day03
java学习笔记: 基础知识: day03: 循环结构、Random随机数
接day02继续写笔记
(三)循环结构
1.for
格式:
for(初始化语句;判断条件语句;控制条件语句;){
循环语句体;
}
执行流程:A.执行初始化语句。B.执行判断条件语句,看其结果是true还是false。如果是false,就结束循环。如果是true,就继续执行。C.执行循环体语句。D.执行控制条件语句。E.回到B继续。
2.while
(1)格式:
while(判断条件语句){
循环体语句;
}
while循环的完整格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
(2)for循环和while循环可以等价。如果需要转换for循环和while循环,就按照for循环的格式和while循环的完整格式来转换。
for(初始化语句;判断条件语句;控制条件语句;){
循环体语句;
}
while循环的完整格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
3.do-while
格式:
do{
循环体语句;
}while(判断条件语句);
do-while循环的完整格式:
初始化语句;
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:A.执行初始化语句。B.执行循环语句。C.执行控制语句。D.执行判断条件语句,看是true还是false。如果是false,就结束循环。如果是true,就回到B继续。
无论判断条件是否成立,循环体至少执行1次。
(四)三种循环的区别
(1)三种循环语句可以完成相同的事情,但是也有小区别的。
do-while至少执行1次循环体,而for和while要先进行条件判断,然后再看是否执行循环体语句。
(2)for和while的小区别:
for循环结束后,初始化的变量、i控制变量就不能被使用了。for更好,因为变量也占内存和空间。
while循环结束后,初始化变量还可以继续使用。
(3)推荐使用顺序:for > while > do-while
(4)死循环
while(true){
...
break;
}
for(;;){}
(五)循环嵌套:就是循环与具体本身是一个循环语句。
(六)跳转控制语句
1.break的使用场景
A.switch语句中,用于结束switch。
B.循环语句中,用于结束循环。如果只有if,没有循环语句,就不能用break。
C.如果是多层循环,break结束的是离它最近的那个循环。
如果要跳出最外层的循环,使用带标签的语句。格式:
标签名:语句
代码示例:
wc: ...
{
nc{
}
}
break wc;
这个做法不推荐。
2.Continue使用场景:循环中。
离开使用场景是没有意义的。
跳出这一次循环,进入下一次循环。
3.break和continue的区别
break:跳出整个循环,结束整个循环语句。
continue: 跳出这一次循环,进入下一次循环。
(七)Random随机数
1.Random: 用于产生随机数的类。
2.使用步骤:
A.导包 import java.util.Random;
B.创建对象 Random r = new Random();
C.获取随机数 int number = r.nextInt(10);//获取[0,10),包括0,不包括10。
D.公式
int lower = 10;
int upper = 20;
int a = r.nextInt(upper - lower) + lower;//产生[lower, upper)之间的随机数。
3.比较好的代码
代码一:产生一个随机字母
int i = Random.nextInt(26) + 65;//A-Z, 'A'的ASCII码是65
int i = Random.nextInt(26) + 97;//a-z, 'a'的ASCII码是97
char c = i;
代码二:产生26个随机英文字母
//产生26个随机英文字母
import java.util.Random;
Random r = new Random();
int i;
char c;
for(int j = 0; j < 26; j++){
i = r.nextInt(26) + 65;//'A'=65, 'a'=97
c = (char)i;
System.out.println(c);
}
三、写程序时,做数据测试,应该考虑这几种情况:(1)正确数据;(2)边界数据;(3)错误数据。
====