第十节 循环结构for-while-do-while

前言

    初学java语言的小白,日常记录个人所学、所思、所感、所获。
    请java语言行业的前辈们多多指教, 目前从事汽车制造行业。
    属于零基础自学,愿未来自己感谢今天的选择和努力。加油!

一、循环结构概述

2021、8、22更新
笔记:了解循环语句的组成部分,以及各部分对应的功能。
A.循环结构的基本组成,一般可以分为四部分:
1.初始化语句:在循环开始最初执行,而且只做唯一一次。
2.条件判断:如果成立,则循环继续,如果不成立,则循环退出。
3.循环体:重复要做的事情内容,若干行语句。
4.步进语句:每次循环之后都要进行的扫尾工作。每次循环之后都要执行一次

二、循环结构 for循环

2021、8、22更新
笔记:
1.在编写代码时,符号顺序一定要正确,观察下面两张图片,你会发现仅仅是<=的符号顺序发生改变,整个程序就开始报错。
2.for循环的标准格式如下
for(初始化语句;条件判断;步进语句){
循环体;
}
3. for(初始化语句;条件判断;步进语句)可以简写为条件判断.for变量
例: for (int i = 1; i <= 100; i++) 的简写为: 100.fori
在这里插入图片描述

请添加图片描述

public class Demo01For {

public static void main(String[] args) {
    //格式
    // for(初始化语句;条件判断;步进语句){
    //               循环体;
    // }

    for (int i = 1; i <= 100; i++) {//i++-->i=i+1
        System.out.println("我错了,原谅我吧"+i);
    }
    System.out.println("程序结束");
}

}

三、循环结构 while循环

2021、8、22更新
笔记:
1.for循环与while循环的具有通用性。(二者可以相互转换)
2.while循环与for循环可以都分为以下四个部分。
初始化语句
条件判断
循环体
步进表达式
3、while循环的格式如下:
标准格式:
while(条件判断){
循环体;
}

拓展格式:
初始化语句:
while(条件判断){
循环体;
步进表达式;
}

/*

while循环有一个标准格式,还有一个拓展格式。

标准格式:
while(条件判断){
循环体;
}

拓展格式:
初始化语句:
while(条件判断){
循环体;
步进表达式;
}

*/
public class Demo02While {

public static void main(String[] args) {

    //for循环和while循环二者其实是互通的
    //for循环

    for (int i = 1; i <= 100; i++) {//i++-->i=i+1
        System.out.println("我错了,原谅我吧"+i);
    }
    System.out.println("程序结束");
    System.out.println("======");
    
    //while循环
    int i=1;//1.初始化语句
    while (i<=100){//条件判断
        System.out.println("我错啦,原谅我吧"+i);//循环体
        i++;//步进表达式
    }
    System.out.println("程序结束");
}

}
在这里插入图片描述

四、循环结构 do-while循

2021、8、22更新
笔记:
1.for循环与do while循环也可以进行相互转换
2.【重点思考】: 在课程学习当中,两次定义变量i,为什么程序没有报错。
方法一: for (int i = 1; i <= 100; i++) {
方法二: int i=1;//1.初始化语句
个人分析:第一个变量定义在for循环里面,循环结束变量失效。
第二个变量定义在方法里面,二者不冲突。如果将do-while循环与for循环调换位置,结果?直接报错【注意】
在这里插入图片描述

/*
do while循环
无条件执行第一次循环
do while循环的的标准格式
do{
循环体;
}while(条件判断);

do while循环的的拓展格式
//初始化语句
do{
循环体;//循环体
步进语句;//步进语句
}while(条件判断);//条件判断

*/
public class Demo03DoWhile {

public static void main(String[] args) {
    //for循环
    for (int i = 1; i <= 10; i++) {
        System.out.println("你好"+i);
    }
    System.out.println("======");

    //for循环 翻译成为do while循环
    int i=1;//初始化语句
    do{
        System.out.println("我也好"+i);//循环体
        i++;//步进表达式
    }while (i<=10);//条件判断
    System.out.println("程序结束");
}

}

五、练习 用循环结构求出1-100的偶数和

2021、8、22更新
笔记:
注意:用于循环的i++的位置特别关键,它需要在循环体内。
【重点】:下两图仅i++的位置不同,第二图无法打印输出。含义也不相同。
在这里插入图片描述

在这里插入图片描述

/*
题目要求:
求出1-100之间的偶数和

思路:
1.既然范围已经确定是1到100之间,那么我就必须从1、2、3…一直到100这么多个数字例一个一个进行检查。
2.总共有100个数字,并非所有数字都能用.必须要是偶数才能用,那么判断语句(if语句)偶数num%2==0;
3.需要一个变量,用来进行累加操作,就好比一个存钱罐
*/
public class Demo04HunderedSum {

//for循环
public static void main(String[] args) {
int sum=0;//定义一个求和的变量
for (int i = 1; i <=100; i++) {//循环1-100的数字
if(i % 2 == 0) {//判断是不是偶数
sum += i;//求和
}
}
System.out.println(“for循环偶数求和结果为”+sum);//注意打印输出的位置

    //课后作业,将for循环转换成do-while以及while循环
    
    //转型为do-while循环
    int i1=1;
    int sum1=0;//定义一个求和的变量
    do{
        if(i1 %2==0) {
            sum1 += i1;
        }
        i1++;//注意步进语句要写在if语句之外,否则无法打印输出
    }while (i1<=100);
    System.out.println("do-while循环偶数求和的结果为"+sum1);

    //转型为while循环
    int i2=1;
    int sum2=0;//定义一个求和的变量
    while (i2<=100){
        if(i2 %2==0) {//判断i2是否为偶数
            sum2 += i2;//求和
        }//这一步if语句完成
        i2++;//注意步进语句要写在if语句之外,否则无法打印输出
    }
    System.out.println("while循环偶数求和的结果为"+sum2);
}

}

六、三种循环的区别

2021、8、22更新
笔记:
1.注意变量的作用域

/*
三种循环的区别

1.如果条件判断都没满足过,那么for循环和while循环将会执行0次,do-while循环将会执行至少一次。
2.for循环的变量在小括号当中定义,只有循环内部才可以使用
【即同一个变量可以在for循环内和外各定义一次】
3.do-while循环以及while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用

*/
public class Demo05LoopDifference {
public static void main(String[] args) {
//1.如果条件判断都没满足过,那么for循环和while循环将会执行0次,do-while循环将会执行至少一次。

//for循环
    for (int i = 1; i < 1; i++) {
        System.out.println("大家好");
    }//无输出
    //2.for循环的变量在小括号当中定义,只有循环内部才可以使用
    //System.out.println(i);//报错 找不到变量i
    System.out.println("======");

    //while循环
    int i=1;
    while(i<1){
        System.out.println("大家好");
        i++;
    }//无输出
    System.out.println("======");

    //do-while循环
    int i1=1;
    do{
        System.out.println("大家好");
        i1++;
}while(i1<1);//打印输出一次大家好
    //现在已经超出了了do-while循环的范围,我们仍然可以使用变量;
    System.out.println(i1);//2 i1++执行了一次

}

}

七、循环控制 break语句

2021、8、22更新
笔记:
break 在程序当中的打断,结束的意思
1.注意break的用法。
2.边学习边拓展,将之前学习的内容结合起来
/*
break关键字的用法有常见的两种:

1.可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
2.还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环
3.关于循环的选择,有一个小建议:
凡是次数确定的场景多用for循环,否则多用while循环。
4.拓展:
将for循环转换为while以及do-while循环
*/

public class Demo06Break {

public static void main(String[] args) {
    //for循环
    for (int i = 1; i <=10; i++) {
        //如果希望从4次开始,后续全都不要了,就要打断循环
        if(i==4){//如果当前是第4次
            break;//打断循环
        }
        System.out.println("Hello"+"For");
    }
    System.out.println("======");

    //将for循环转换为while循环
    int i=1;
    while (i<=10){
        if(i==4) {
           break;
        }
        System.out.println("Hello"+"While");
        i++;
    }
    System.out.println(i);//4
    System.out.println("======");

    //将for循环转换为while循环
    int i1=1;
    do{
        if(i1==4){
            break;
        }
        System.out.println("Hello"+"Do-While");
        i1++;
    }while (i1<=10);
    System.out.println("程序结束");
}

}

八、循环控制 continue语句

2021、8、22更新
笔记:
1.注意break语句与continue语句的区别
break语句表示立即终止,结束。
continue语句表示跳过当前次循环,马上进入下一次循环。
2.注意拓展2的顺序,即用XXX替代XXX打印输出,被替代对象要使用contineue跳过。替代对象语句放在被替代对象之前打印输出。否则contineue会熔断跳过。

/*
continue 跳过执行
另一种循环控制语句是continue关键字
一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环

*/
public class Demo07Continue {

public static void main(String[] args) {
    for (int i = 1; i <= 10; i++) {
        //拓展2,用别的结果去替代4楼
        if (i==4){
            System.out.println("九层妖塔");
        }

        if(i==4) {//如果当前是第四层
            continue;//那么马上跳过当前次循环,马上开始下一次循环(第五层)
        }
        System.out.println(i+"楼到了");
        //拓展1 将之前的break语句联系起来
            if (i==9){
                break;
            }
    }
}

}

九、死循环

2021、8、22更新
笔记:
1.想要循环在特定次数停止,可以使用break关键字。
2.死循环在未结束循环之前,后面接任何打印输出语句都是无效的,导致程序报错。

/*
死循环:
永远停不下来的循环,叫做死循环

死循环的标准格式:
while(teue){
循环体;
}
*/
public class Demo08DeadLoop {
public static void main(String[] args) {
for (int i = 1;i<=10;i++ ) {
System.out.println(“哈哈”);
}
//标准死循环
while(true){
System.out.println(“I Love Java”);

    }
    //死循环在未结束循环之前,后面接任何打印输出语句都是无效的,导致程序报错。
    //System.out.println("程序结束");//错误写法循环无法结束,此语句无法输出
}

}

十、循环嵌套

2021、8、22更新
笔记:
1.注意循环嵌套的位置if(){
if(){
if(){
System.out.println(“xxxx”)
}
}
}
2.注意输出语句一定要在对应的作用域范围,即最里面的if语句{}内
例:对比下两图差异
这是正确写法,输出语句在分钟的作用域范围
错误写法,输出语句超出分钟的作用域范围,导致无法打印输出分钟

/*
循环嵌套
以每天的时间为例
【注意】打印输出语句所在位置

实战练习;
1.在时间嵌套秒的循环
2.用嵌套嵌套打印一年当中的每一天

*/

public class Demo09LoopHourAndMinute {

public static void main(String[] args) {
    for (int hour = 0; hour < 24; hour++) {//外层控制小时

        for (int minute = 0; minute < 60; minute++) {//内层控制小时之内的分钟
    //正确写法
        System.out.println("现在是北京时间" + hour + "点"+minute+"分");
        }
        //错误写法 原因:虽然在hour的作用域 但是超出变量minute的作用域了
        //System.out.println("现在是北京时间" + hour + "点"+minute+"分");
    }

    //拓展练习1,嵌套秒钟的循环
    for (int hour = 0; hour < 24; hour++) {//外层控制小时

        for (int minute = 0; minute < 60; minute++) {//内层控制小时之内的分钟

            for (int second = 0; second < 60; second++) {//最内层控制分钟之内的秒钟
                System.out.println("现在是北京时间" + hour + "点"+minute+"分"+second+"秒");
            }
        }
    }
    //拓展练习2,嵌套打印一年当中的每一天


    //嵌套嵌套打印一年当中的每一天
    for (int i = 1; i <= 12; i++) {
        for (int i1 = 1; i1 <= 31; i1++) {
            System.out.println("今天的日期是"+i+"月"+i1+"日");
        }
    }
}

}

心得体会

2021、8、22更新
笔记:
一定要牢记什么是作用域,超出作用域变量和输出语句都会失效,本章节内容比较多,后续用得也多,没事反复观看练习。加油!明天会更好2021、8、22

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值