今天我们接着学习JavaEE的流程控制语句的循环语句与跳转控制语句,其他流程控制语句看上篇文章,话不多说,上代码!
⭐【JavaEE进阶序列 | 从小白到工程师】JavaEE中的流程控制语句里的分支语句 if与switch语句⭐
* 情况:当发现一段代码逻辑,需要重复的执行很多次
这个时候就可以使用循环语句对代码进行优化
1.for循环语句
2.while循环语句
3.do...while循环语句
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
* 初始化语句 :
定义变量,用这个变量来控制循环
* 条件判断语句:
决定循环是否要继续的条件
* 条件控制语句:
改变变量的值(改变心中所想的那个数字)
* 循环体语句:
重复执行的代码任务
执行流程:
1.执行初始化语句,在整个循环中只执行一次
2.执行条件判断语句,判断其结果是true还是false
如粜是false,循环结束
如果是true,继续执行
3.执行循环体语句
4.执行条件控制语句
5. 回到 第2点 继续
//循环打印1到3
//循环打印3到1
public class Main{
public static void main(String[] args) {
for (int i = 1; i <=3; i++) {
System.out.println(i);
}
System.out.println("---------");
for (int i = 3; i >=1 ; i--) {
System.out.println(i);
}
}
}
//答案在末尾
//答案在末尾
//答案在末尾
1.循环 { } 中定义的变量,在每一轮循环结束后,都会从内存中释放(消失)
2.循环 ( ) 中定义的变量,在整个循环结束后,都会从内存中释放(消失)
3.循环语句 ( ) 和 { } 之间不要写分号
public class Main{
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
int a=10;
System.out.println("hello");
}
}
}
public class Main{
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println("hello");
}
}
}
public class Main{
public static void main(String[] args) {
for (int i = 0; i < 10; i++) ;
{
System.out.println("hello");
}
}
}
* 死循环介绍:不会退出的循环
格式:
for(;;){
//循环体
}
//注意:在死循环下面写代码无效
public class Main{
public static void main(String[] args) {
for (int i = 0; i < 3; i--) {
System.out.println("hello");
}
}
}
public class Main{
public static void main(String[] args) {
for (int i = 0; 1 < 3; i++) {
System.out.println("hello");
}
System.out.println("hello");
}
}
循环嵌套: 在循环语句中, 继续出现循环语句
//内循环当成外循环的循环体,内循环不执行完外循环不会进行,
//所以都是内循环执行一圈,外循环才执行一次
/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
....
分析:
乘号左则:每一次都是从1开始,逐个进行增长(1,2,3,4,5,6...) -- j
乘号右则:在每一行当中,数据都是固定不变的 -- i
步骤1:打印9行9列矩形
步骤2:改进为9行的直角三角形
步骤3:改进为99乘法表
*/
//答案在末尾
格式:
初始化语句;
while(条件判断语句) {
循环体语句;
条件控制语句;
}
执行流程:
1.执行初始化语句,在整个循环中只执行一次
2.执行条件判断语句,判断其结果是true还是false
如粜是false,循环结束
如果是true,继续执行
3.执行循环体语句
4.执行条件控制语句
5. 回到 第2点 继续
public class Main {
public static void main(String[] args) {
int i=1;
while (i<=5){
System.out.println("hello");
i++;
}
}
}
格式:
while (true) {
输出语句
}
public class Main {
public static void main(String[] args) {
while (true){
System.out.println("hello");
}
}
}
格式:
初始化语句;
do {
循环体语句;
条件控制语句;
} while (条件判断语句);
执行流程:
1.执行初始化语句
2.执行循环体语句
3.执行条件控制语句
2.执行条件判断语句,判断其结果是true还是false
如粜是false,循环结束
如果是true,回到2继续
//特点:无论判断条件是否满足都至少执行一次循环体
public class Main {
public static void main(String[] args) {
int i=1;
do {
System.out.println("hello");
i++;
}while (i<=5);
}
}
格式:
do{
循环体语句;
} while(true);
public class Main {
public static void main(String[] args) {
do {
System.out.println("hello");
}while (true);
}
}
• for 循环 和 while 循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
• do...while捅坏先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for和while的区别(for和while没有什么本质区别,for可以做的while也可以):
* for循环中,控制循环的変量,因为归属for循环的语法结构中,在for循坏结束后,就不能再次被访问到了
* while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循坏结束后,该变量还可以继续使用
跳转控制语句包括: "break" 和 "continue"
break: 用在循环中,基于条件控制,"终止" 循坏体内容的执行,也就是说结束当前的整个循环
public class Main {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
if(i==5){
break;
}else{
System.out.println("第"+i+"次循环");
}
}
}
}
continue:用在循环中,基于条件控制, "跳过" 某次循坏体内容的执行,继续下一次的执行
public class Main{
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if(i==3||i==5||i==8){
continue;
}else{
System.out.println("第"+i+"次循环");
}
}
}
}
break和continue语句都只能操作自己所在的那一层循环,如果想要操作指定的一层,可以使用标号(也就是取名字给他们)
public class Main{
public static void main(String[] args) {
abc : for(int i=1;i<=3;i++) {
for(int j=1;j<=3;j++) {
if(j==2) {
break abc; //跳出到abc这里
}
System.out.println("i的值为"+i+",j的值为"+j);
}
}
}
}
break:只能在 "循环体内" 和 "switch语句体内" 使用
continue:只能在 "循环体内" 使用
求和练习答案
public class Main{
public static void main(String[] args) {
int sum=0;
for (int i =1 ; i <= 100; i++) {
if(i%2==0){
sum+=i;
System.out.println(i);
}
}
System.out.println(sum);
}
}
水仙花数练习答案
public class Main{
public static void main(String[] args) {
int a,b,c,d;
for(d=100;d<1000;d++) {
a=d/100;
b=(d/10)%10;
c=d%10;
if(a*a*a+b*b*b+c*c*c==d) {
System.out.println(d);
}
}
}
}
求奇数之和练习答案
import java.util.*;
public class Main{
public static void main (String[] args){
Scanner rd=new Scanner(System.in);
int a=rd.nextInt();
int sum=0;
for(int i=1;i<=a;i++) {
if(i%2!=0) {
sum+=i;
}
}
System.out.println(sum);
}
}
打印九九乘法表练习答案
public class Main{
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=i ; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t"); //\t相当于tab键,大空格
}
System.out.println();
}
}
}
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习