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

142 阅读5分钟

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