本文主要是介绍Java基础05 循环结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
超详细的Java知识点路线图
前言
再复杂的程序都是由三种基本结构组成的:顺序结构、分支结构和循环结构,本文我们就学习这个循环结构,本文内容包含:for\while\do-while循环、循环控制break和continue以及嵌套循环。
循环
LOL中的盖伦的E技能是拿剑转圈,假设一共需要转十圈,程序是如何控制他执行重复的转圈操作呢?
答案就是:通过循环反复去执行一段代码
Java中的循环有
- for
- while
- do-while
循环的三个要素
- 停止循环的条件
- 起始量,循环变量的初始化
- 循环变量的更新
for循环
一般用于固定次数的循环
语法结构:
for(循环变量的初始化;循环的条件;循环变量的更新){循环的执行语句;
}
执行流程:
- 初始化
- 判断循环条件,如果成立
- 执行循环语句
- 变量的更新
- 判断循环条件
…
练习:
1、转圈的案例
for(int i = 1;i <= 10;i++){System.out.println("盖伦转了" + i + "圈");
}
2、输出100到999之间的所有奇数
3、求5的阶乘。5!= 1 * 2 * 3 * 4 * 5
4、求1~100的总和
while循环
while循环执行的流程和for一样
语法:
循环变量的初始化
while(循环条件){循环的执行语句循环变量的更新
}
练习:
1、用while循环完成
int i = 1;
while(i <= 10){System.out.println("盖伦转了" + i + "圈");i++;
}
2、用while循环完成,输入两个数字m和n,求m和n之间数字的总和(假设m < n)
do-while循环
语法:
变量的初始化;
do{循环执行的语句;变量的更新;
}while(循环条件);
do-while和for、while的区别:
for、while是先进行条件判断,再执行循环语句,如果条件不成立,一次都不执行。
do-while是先执行循环语句,再进行条件判断,如果条件不成立,至少会执行一次。
执行流程:
练习:一个人跑步,跑完1圈后,询问他是否继续跑,当回答“y”时,继续跑下一圈,否则结束跑步。
1、使用do-while完成
2、循环变量使用String类型
3、循环代码,先输出跑完一圈,再给循环变量输入字符串
4、循环的条件是变量值为"y”
Scanner input = new Scanner(System.in);
String answer = "";
do{System.out.println("跑完了一圈,是否要继续跑?");answer = input.next();
}while(answer.equals("y"));
System.out.println("跑完了,休息下");
break关键字
问题:假设一个人准备在公司上一年班,假设是365天,如果这个人在第100天买彩票发财了,不想再上班了,怎么办?
——使用break关键字
break作用:在循环中间停止整个循环的执行。
//使用循环模拟上365天班
for(int i = 1;i <= 365;i++){System.out.println("上了"+i+"天班");//在第100天中奖,辞职不上班了if(i == 100){//停止整个循环的执行break;}
}
continue关键字
问题:假设上面那个人不是真的中彩票,只是做梦,但是睡觉着凉了,在第100天想请一天假再继续上班,怎么办?
——使用continue关键字
continue作用:在循环中间跳过某一次循环的执行,继续下一次循环。
for(int i = 1;i <= 356;i++){//在第100天,跳过当天的上班if(i == 100){System.out.println("今天发烧了,要请假!");//跳过本次循环,继续continue;}System.out.println("上第"+i+"天班");
}
练习:
1、求1到100的和,和超过2000,就结束
2、输出1到100之间所有尾数不是3的数
嵌套循环
循环内部可以执行任何语句,包括另一个循环,这样就形成了嵌套循环。
如:
for(...){for(...){...}
}
while(..){while(..){...}
}
等,for、while、do-while也可以相互嵌套。
嵌套循环的执行流程:
外部循环执行一次,内部循环执行一轮
练习1:模拟分秒时间。
分析:
秒钟的循环被嵌套在分钟的循环内部
秒钟执行一轮,分钟执行一次
for(int i = 0;i < 60;i++){for(int j = 0;j < 60;j++){System.out.printf("当前时间是:%d分%d秒\n",i,j);}
}
练习2:输出55正方形,每次只输出一个
分析:
外层循环控制打印的行数
内层循环控制打印的*数
//外层控制行数
for(int i = 1;i <= 5;i++){//内层控制打印5个*for(int j = 1;j <= 5;j++){System.out.print("* ");}//输出换行System.out.println();
}
练习3:输出直角三角形
*
* *
* * *
* * * *
* * * * *
练习4:倒直角三角形
* * * * *
* * * *
* * *
* *
*
练习5:输出等腰三角形
** * ** * * * ** * * * * * *
* * * * * * * * *
嵌套循环的break和continue
for(...){for(...){if(...){break/continue;}}
}
内层循环中的break和continue只对内层循环起作用,对外层没有影响。
如果希望break和continue影响外层循环,可以使用label语句(label文字可以自定义)
label:
for(...){for(...){if(...){break label;}}
}
结束
好了,留点作业给大家:
-
输出20个斐波拉契数字:
1 、1 、2 、3 、5 、8 、13 、21 、34 …
从第三个数开始,每一个数等于前两个数之和。 -
输出菱形
** * ** * * * ** * * * * * *
* * * * * * * * ** * * * * * ** * * * ** * * *
- 求1~·100间所有的素数(只能被1和自身整除)
大家如果需要学习其他Java知识点,戳这里 超详细的Java知识点汇总
这篇关于Java基础05 循环结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!