为什么要使用循环?循环的要素?
如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个"hello, world"这样的字符串并持续一个小时,我们肯定不能够将System.out.println(“hello, world”)
这句代码写上3600遍,如果真的需要这样做那么我们的工作就太无聊了。因此,我们需要循环结构,使用循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的发生。在Java中构造循环结构有三种基本做法,一种是while
循环,一种是do-while
循环,一种是for
循环。
Java中的程序结构顺序,分支,循环
//需求:小游戏,猜数字,用户输入一个数字,判断是否正确
sysout(“请输入1-10的数字:”)
Scanner input = .... //获取用户输入
//产生答案
int result = (int)(Math.random()*10+1);
(循环变量(执行多少次)){
int num = input.nextInt();
if(num == result){
sysout(“成功”);
}else{
sysout(“失败”);
}
}
当程序出现大量重复相同的操作时
循环的要素:
1.重复做的事情-->大括号{ }
2.重复的次数-->循环变量
whlie()循环(其次)
循环变量赋初值
while(表达式[循环条件]){
执行语句;[重复操作的事情]
循环变量的自增或自减;
[使循环趋于结束]
}
表达式:循环条件,每次执行循环之前都会判断表达式的真假
一般是由关系运算符组成偶尔可见关系和逻辑运算符组成
最常见的 > >= < <= 其次 != 表达式 && 表达式
执行过程:当循环执行到while时,首先会判断while后面( )里的表达式值的真假,
如果为真,那么就执行{ }里执行语句,然后循环变量自增或自减,
继续判断表达式的真假,直到表达式值为假,那么while循环结束
do-while循环(最后)
do{
执行语句;[重复操作的事情]
循环变量的自增或自减
}while(表达式[循环条件]);
执行过程:当程序执行到do-while时,首先会执行do后面{ }里的执行语句,
然后循环变量自增或自减,接着再去判断while后面( )里表达式的值,
如果值为真,那么就继续执行do,如果值为假,那么就结束循环
do-while和while区别
- while循环是先判断表达式(循环条件),然后在执行,若表达式不成立while循环就不会执行
- do-while先执行执行语句,然后在判断表达式(循环条件),若条件不成,也会执行一次
//打印 1-10
//循环变量赋初值
int i = 1;
do{
//重复操作的事情
System.out.println(i);
i++;
}while(i<1);
System.out.println("----------------------------------------华丽的分割线----------------------------------");
int j = 1;
while(j<1){
System.out.println(j);
j++;
}
ps:某些时候,需要程序需要一直运行,某些系统,循环就不能停止,只要表达式值始终未真(true)
死循环写法:while(true){}
for()循环(必须掌握熟练应用)
for(循环变量赋初值;循环条件;循环变量的自增或自减){
执行语句;[重复操作的事情]
}
执行过程:当程序执行到for首先会执行循环变量赋初值,然后执行循环条件,
判断循环条件的真假,然后为真,那么就执行{ }里的执行语句,
并计算循环变量自增或自减,然后继续判断循环条件,直到为假,for循环结束
for循环的6种写法
“看代码”
循环的嵌套(for的多重循环)
ps:不是单纯指for循环,只是以for循环为例,循环和循环之间是可以互相嵌套
当单层循环无法满足需求的时候,需要在循环的基础上在加一层,这样的方式就是循环嵌套
例子:
for(int i = 1;i<10;i++){
for(int i = 1;i<10;i++){
}
}
for循环的嵌套,将一层循环看做一本书的第一页,第二层循环相当于数中所写的每一行内容,只有看完每一行内容之后,才可以进行翻页操作
外层循环执行一次,内层循环执行多次 --> 图形
案例:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
public class ForDemo4 {
public static void main(String[] args) {
//图形
for(int j = 1;j<=4;j++){
for(int i = 1;i<=5;i++){
//println-->打印出来会有换行
//print--->不带换行
// --> 制表符 --> tab
System.out.print(i*j+" ");
}
System.out.println();
}
}
}
break
循环的停止时当循环条件不成立的时候,循环在停止.
在某些时候,不需要等到循环条件不成立,就让循环条件停止,就需要使用break关键字.
扩展:break在循环嵌套的情况下只能,停止当前循环
标签:在层循环的前提现,可以使用标签的形式来停止循环
循环前添加一个名字即可
continue
continue关键字和break关键字很相似,但break关键是是将循环完全停止,而continue关键字是停止当前循环,开始下一次循环.
(跳过本次循环,开始下次循环)
return
结束一个方法,return关键字不是为循环准备,而是使用在方法中的
为什么使用return关键字可以停止循环?
因为循环是写在方法体中,方法不存在了循环自然就会结束.
案例:
for,while和do-while三种循环的异同点。
同: 都是循环
不同点:书写方式不一样,其中特别的是do-while,先执行,然后在判断
三种循环之间是可以互相嵌套,并且互相修改的对方的书写样式的
什么是方法?
为什么要有方法?
方法的格式
方法的内存图和方法调用过程(传址和传值)