需求:
请在控制台 输出10次:在操场跑步!!!!
请在控制台输出 100次: 在操场跑步!!!!
请在控制台 10000次: 在操场跑步!!!!
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
for 循环
while 循环
do-while 循环
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
图解:
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
请在控制台输出数据1-10
请在控制台输出数据10-1
求出1-10之间数据之和
求出1-100之间偶数和
求出1-100之间奇数和
求5的阶乘
在控制台输出所有的”水仙花数”[n1]
统计”水仙花数”共有多少个
while循环语句格式:
基本格式:
while(判断条件语句) {
循环体语句;
}
扩展格式:[n2]
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
图解:
publicstaticvoid main(String[] args) {
/**
*
* while(判断条件语句) { 循环体语句
*
* 控制条件语句 }
*
* 升级版
*
* 初始化语句 while(判断条件语句) { 循环体语句
*
* 控制条件语句
*
* }
*/
for (inti = 1; i <= 10; i++) {
System.out.println("i:" + i);
}
System.out.println("=================================");
inti = 1;
while (i <= 10) {
System.out.println("i2:" + i);
i++;
}
}
1)输出10次HelloWorld案例
2)求出1-100之和
3)统计水仙花数有多少个
for循环语句和while循环语句可以等价转换,但还是有些小区别的
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。
原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
代码实战:
for(intx=0;x<10;x++)
{
System.out.println("*");
}
System.out.println(x);
System.out.println("============================");
inty = 0;
while(y<10)
{
System.out.println("*");
y++;
}
System.out.println(y);
}
【场景区别】:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
do-while 是 while 的变种!!
do…while循环语句格式:
基本格式
do{
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do{
循环体语句;
控制条件语句;
}while((判断条件语句);
图解:
publicstaticvoid main(String[] args) {
intx = 0;
do {
System.out.println("我来了!!");
x++;
} while (x < 10);
System.out.println("x:" + x);
}
A:输出10次HelloWorld案例
B:求出1-100之和
C:求出水仙花的个数
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
代码实战:
publicclass Demo3 {
publicstaticvoid main(String[] args) {
intx = 10;
while (x < 5) {
System.out.println("女神我爱你,么么哒~~~");
x++;
}
System.out.println("=====================");
inty = 10;
do {
System.out.println("女神我爱你,么么哒~~~");
x++;
} while (x < 5);
System.out.println(y);
}
}
注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
如下代码是死循环
while(true){}
for(;;){}
需求:请输出一个5行6列的星星(☆)图案。
需求:请输出如下图形
*
**
***
****
*****
需求:在控制台输出九九乘法表。
需求1代码实战:
for(inti=0;i<6;i++)
{
System.out.print("*");
}
System.out.println();
for(inti=0;i<6;i++)
{
System.out.print("*");
}
System.out.println();
for(inti=0;i<6;i++)
{
System.out.print("*");
}
System.out.println();
for(inti=0;i<6;i++)
{
System.out.print("*");
}
System.out.println();
for(inti=0;i<6;i++)
{
System.out.print("*");
}
改进版:
publicstaticvoid main(String[] args) {
for(intx=0;x<5;x++)
{
for(inty=0;y<6;y++)
{
System.out.print("☆");
}
System.out.println();
}
}
如下图:
前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
break 中断
continue 继续
return 返回
break的使用场景:
在选择结构switch语句中
在循环语句中(循环语句中加了if判断)
离开使用场景的存在是没有意义的[n3]
break的作用:
跳出单层循环
跳出多层循环
带标签的跳出
格式:标签名: 循环语句
标签名要符合Java的命名规则
跳出单层循环
publicstaticvoid main(String[] args) {
for (intx = 0; x < 10; x++) {
if (x == 2) {
break;
}
System.out.println("哈哈哈");
}
}
break 只表示跳出当前循环
跳出多层循环
for(inti=0;i<3;i++)
{
for(intj=0;j<4;j++)
{
if(j==2)
{
break;
}
System.out.print("☆");
}
System.out.println();
}
如果此时非要跳出外层的循环?也就是说想要跳出多层循环
带标签的跳出
publicstaticvoid main(String[] args) {
waiceng: for (inti = 0; i < 3; i++) {
neiceng: for (intj = 0; j < 4; j++) {
if (j == 2) {
// break;
break waiceng;
}
System.out.print("☆");
}
System.out.println();
}
}
continue的使用场景:
在循环语句中
离开使用场景的存在是没有意义的[n4]
continue的作用:
单层循环对比break,然后总结两个的区别
break 退出当前循环,循环就不再执行了[n5]
continue 退出本次循环,进入下一次(后面)的循环[n6]
也可以带标签的使用(不演示了)
publicstaticvoid main(String[] args) {
for (inti = 0; i <= 10; i++) {
if (i == 2) {
break;
}
System.out.println("i:" + i);
}
System.out.println("---------------------------");
for (inti2 = 0; i2 <= 10; i2++) {
if (i2 == 2) {
continue;
}
System.out.println("i2:" + i2);
}
}
观察结果:
[n1]水仙花数
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153= 1*1*1 + 5*5*5 + 3*3*3
[n2]写完扩展格式,我们就可以说while循环语句讲解完毕。因为它和for循环是可以等价转换的
[n3]不能单独使用
[n4]不能单独使用
[n5]结束整个循环
[n6]只退出本一次循环,后面的循环继续执行