吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1919|回复: 11
收起左侧

[Java 转载] Day08——循环结构

[复制链接]
明天也有晚霞嘛 发表于 2021-3-17 00:08

Day08——循环结构

顺序结构的程序语句只能被执行一次。如果想要同样的操作执行多次,,就需要使用循环结构。

Java中的三种主要循环结构:

  • while循环
  • do...while循环
  • for循环

在Java5中引入了一种主要用于 数组 的增强型for循环

while循环

while是最基本的循环。while语句格式:

while( 布尔表达式 ){
    //循环内容
}

当布尔表达式为true时,while内的循环内容会被执行,直到布尔表达式判断为false停止。

少部分情况需要循环一直执行,比如服务器的请求响应监听等。

循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。死循环会影响程序性能或者造成程序卡死奔溃!

例1:求1+2+3+ ... +100= ?

public static void main(String[] args){
    int i = 0;
    int sum = 0
        while(i<100){
            i++;
            sum = sum + i;
        }
    System.out.println("Sum = " + sum );
}//Sum = 5050

do...while循环

do...while语句格式:

do{
    //循环内容
}while(布尔表达式);

当布尔表达式为false时,while语句不会执行循环内容,但do...while语句会执行一次循环内容,即先执行一次,后判断布尔表达式。

例2:

//例1代码段4~7改为如下
do{
    i++;
    sum = sum + i;
}while(i<100);   //5050

for循环

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。

for循环格式:

for(初始化; 布尔表达式 ; 迭代){
    //循环内容
}

【扩展】缩写:100.for = for (int i = 0; i < 100; i++) {}

例3:

for (int i = 0; i <= 100; i++) {
    sum = sum + i;
}

上端代码可以看出,for循环把while和do...while中,i 的初始化、i 迭代的语句放在了一起,因此能使循环结构变得更加简单。

例4:输出1-1000之间能被5整除的数,并且每行输出3个。

int j = 0;
for (int i = 0; i <= 1000; i++) {
    if(i%5==0){
        j++;//判断输出了几个数
        if(j%3==0){
            System.out.println(i);//println打印出i并且换行
        }else{
            System.out.print(i+"\t");//print不换行,\t为转义字符tab,用于分隔两相邻数据
        }
    }
}

例5:打印九九乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(i+"*"+j+"="+i*j+"\t");
    }
    System.out.println();
}
/*
1*1=1   
2*1=2   2*2=4   
3*1=3   3*2=6   3*3=9   
4*1=4   4*2=8   4*3=12  4*4=16  
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25  
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81  
*/
  • 增强for循环

    Java5 引入了一种主要用于数组 或 集合的增强型 for 循环。

    int[] numbers={10,20,30,40,50};//创建一个数组numbers,并赋值
    for(int x:numbers){        //遍历数组中的元素,赋值给x
        System.out.println(x);
    }//10 20   30    40   50

    详情见数组章节。

break & continue

1、break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块

在双循环嵌套语句中,跳出里层循环。

2、continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代,即,结束本次循环,并进行下一次判断布尔表达式循环。

break & continue两者区别:

  • break用于强行退出循环,不执行循环中剩余的语句。
  • continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行 下一次是否执行循环的判定。

【扩展】打印三角形

public static void main(String[] args) {
    for (int i = 1; i <= 5; i++) {  //i控制行数,i=1即第一行
        for (int j = (9-(2*i-1))/2 ; j >= 0 ; j--) {
            System.out.print(" ");  //j控制空格数,即此行需要多少个空格
        }
        for (int k=2*i-1; k > 0 ; k--) {
            System.out.print("*");  //k控制*数,即此行需要多少个*
        }
        System.out.println();       //换行
    }
}/*
     *
    ***
   *****
  *******
 *********
*/

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
joneqm + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zd404039009 发表于 2021-3-17 08:36
循环打印99乘法表- -想起当初的练习了
lysps 发表于 2021-3-17 07:49
就早前看过几节c、python的视频,好像有讲。
但现在是不记得这循环的区别了。

看文本果然也难懂一点...
贫道不是频道 发表于 2021-3-17 00:22
昧昩 发表于 2021-3-17 00:32
感谢分享,学习到了
95461248 发表于 2021-3-17 00:36
感谢分享,重温许久没接触的东西。
opqrsgu 发表于 2021-3-17 05:31
不明觉厉!不管了,看着很腻害就赞!
erui 发表于 2021-3-17 06:27
谢谢楼主分享,学学java编程
sxwa059587 发表于 2021-3-17 08:40
- -想起当初的练习了
sunnyAlvis 发表于 2021-3-17 10:12
感谢分享,正好在学单片机
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表