我在上海乐字节学习Java的第五天

for循环
for循环语法格式
for (初始表达式; 条件表达式; 迭代表达式)
{
循环语句;
}
初始表达式是在for循环首次执行时要计算的表达式。通常,这里会为一个循环变量初始化一个值
条件表达式(循环条件)用于每次循环前的条件判断,只有在条件表达式值为true时,才入到循环语句执行。
迭代表达式则在循环语句执行完成后进行计算,一般来说使用一个递增或递减的计数器作为迭代表达式,改变循环变量的值

`package com.hpe.jave;

public class Demo01 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    /**
     * for循环为我们专门提供了三个位置来放三个表达式
     * 1.初始化语句
     * 2.条件表达式
     * 3.累加器
     * 
     * for(①初始化语句;②条件表达式;④累加器){
     * ③循环体;
     * 
     * }
     */
    
    //抄课文
    for(int i=1;i<=10;i++){
        System.out.println("抄课文");
    }

}

}`

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

在这里插入图片描述

for循环执行过程

for语句执行时,首先执行初始表达式(只是第一次执行),然后判断条件表达式的值,如为true则转向2,如为false则转向4。
执行循环语句;循环语句执行完成,转向3
计算迭代表达式,计算完,转向1。
结束for循环。
`package com.hpe.jave;

public class Demo02 {

public static void main(String[] args) {
    // TODO Auto-generated method stub

// *****
// *****
// *****
// *****
// *****
//这个循环控制的是图形的高度
for(int i=0;i<5;i++){
//System.out.println("*****");//768
//内层循环的是图形的宽度
for(int j=0;j<5;j++){
System.out.print("*");
}
System.out.println();
}

}

}`

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

`package com.hpe.jave;

public class Demo021 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //        外                  内          规律

// ***** 1 i=0 5 5-i
// **** 2 i=1 4
// *** 3 i=2 3
// ** 4 i=3 2
// * 5 i=4 1

    for(int i=0;i<5;i++){
        for(int j=0;j<5-i;j++){
            System.out.print("*");
        }
        System.out.println();
    }
}

}`

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这里插入图片描述

for循环的优点
在一个地方包括循环的全部规则,不是把几个语句放在代码的不同地方。使代码更易于阅读。适用于循环的开始和结束已知,循环次数固定的场合。
while循环多适用于循环次数不确定,仅需知道循环终止条件的场合
在这里插入图片描述

死循环
不会停止的循环。
实现方式如下:
在这里插入图片描述

例题:某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分

`package com.hpe.jave;

import java.util.Scanner;

public class Demo03 {

public static void main(String[] args) {
    // TODO Auto-generated method stub

// 某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分

    Scanner sc =new Scanner(System.in);
    int sum=0;//总分
    int avg=0;//平均分
    //外层控制班级,
    for(int i=0;i<3;i++){
        System.out.printf("请输入第%s个班级学生的信息",(i+1));
        System.out.println();
        sum=0;
        //内层循环控制每个学员的分数
        for (int j=0;j<4;j++){
            System.out.printf("请输入第%s个学生的成绩",(j+1));
            int score= sc.nextInt();
            sum+=score;
        }
        //计算每个班级的平均分
        avg=sum/4;
        System.out.println("班级平均分"+avg);
    }

}

}`

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

在这里插入图片描述

小结:
while()加循环条件,一但条件不满足就不执行语句。先判断后执行。适用于循环次数不确定,仅需知道循环终止条件的场合
do-while(),判断条件满足则执行语句,条件不满足时退出循环,但是do-while()是先执行后判断,所以至少要做一次循环
for(定义循环初始条件;循环退出条件;参数自加)。适用于循环的开始和结束已知,循环次数固定的场合

特殊流程控制语句
break 语句
break语句用于终止某个语句块的执行,最多使用的是跳出当前的整个循环
{ ……
break;
……
}
continue 语句
continue语句立即终止当前循环,继续执行下一次循环
continue语句用在for循环中也是终止当前循环,继续执行下一次循环
continue语句用法举例
打印1-100不能被3整除的数
For循环嵌套continue位置
注意
break只能用于switch语句和循环语句中。
continue 只能用于循环语句中。
在同一代码块中,break和continue之后不能有其他的语句,因为程序永远不会执行到break和continue之后的语句。

`package com.hpe.jave;

public class Demo04 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    /**
     * 1.while常用在循环次数不确定的情况下
     * 2.for用在次数固定的情况下
     * 3.for循环初始化变量定义在小括号里面,只能在循环内部用
     * 4.while初始化变量定义在循环外面,在循环外部也可以用
     */
    
    for(int i=0;i<10;i++){
        if(i==4){
            break;
            //break:一旦执行,终止循环
        }
        System.out.println(i);
    }
    for(int i=0;i<10;i++){
        if(i==4){
            continue;
            //continue:跳过当次循环,继续执行下一次循环
        }
        System.out.println(i);
    }
    int i=0;
    while(i<10){
        if(i==4){
            
        continue;
        }    
    System.out.println(i);
    i++;
    }

}

}`

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

猜你喜欢

转载自blog.csdn.net/dirft_lez/article/details/109234869