fengye0518

导航

Java学习 (12)Java流程控制篇(03)循环结构

循环结构

While 循环

  • while 是最基本的循环结构,结构为
public static void main(String[] args) {
    
    while (布尔表达式){
       //循环内容;
    }
}
  • 循环条件一直为 true 就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃!
public static void main(String[] args) {
    //死循环
    while (true){
        //等待客户端连接
        //定时检查。。。
    }
}

语法实例

用 While 计算1+2+3+...+100=?

public static void main(String[] args) {
    //计算1+2+3+...+100=?

    int i = 0;
    int sum = 0;

    while (i <= 100){
        sum = sum + i;
        i ++;
    }
    System.out.println(sum);
}
/*run:
	5050
*/

DO While 结构

  • 对于while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次
  • Do while 循环和While 循环相似,不同的是,Do while 循环至少会执行一次
do {
    	//代码语句
}while (布尔表达式);

语法实例

用 Do while 计算1+2+3+...+100=?

public static void main(String[] args) {

    int i = 0;
    int sum = 0;

    do {
        sum = sum +i;
        i++;
    }while (i <= 100);
    System.out.println(sum);
}
/*run:
	5050
*/

while 和 Do While 的区别

  • While 先判断后执行,Do while 是先执行后判断!
  • Do while 总是保证循环体会被至少执行一次!这是他们的主要差别
  • 问题实例
public static void main(String[] args) {
    int a = 0;
    while (a < 0){
        System.out.println(a);
        a++;
    }
    System.out.println("------------------");
    do{
        System.out.println(a);
        a++;
    }while (a<0);
}
/*run:
	------------------
    0
*/

For 循环

  • 虽然所有循环结构都可以用 While 或者 Do while 表示,但 Java 提供了另一种语句——for 循环,使一些循环结构变得更加简单
  • for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
  • fo r循环执行的次数是在执行前就确定的。语法格式如下
for (初始化;布尔表达式;迭代){
    //代码语句
}

有关 for 循环的说明

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
  • 再次检测布尔表达式。循环执行上面的过程

语法实例

1.While和For 的区别

public static void main(String[] args) {
    int a = 0;//初始化条件

    while (a <=100){//条件判断
        System.out.println(a);//循环体
        a++;//迭代
    }
    System.out.println("while循环结束!");

    System.out.println("======================");
    //初始化   //条件判断  //迭代
    for (int i = 0; i <= 100; i++) {
        System.out.println(i);

    }
    System.out.println("for循环结束!");
    
}
/*run:
0
1
2
~
100
while循环结束!
======================
0
1
2
~
100
for循环结束!
*/

2. 0 —100 的奇、偶之和

public static void main(String[] args) {
    int oddSum = 0;
    int evenSum = 0;

    for (int i = 0; i <= 100; i++) {
        if (i%2 !=0){
            oddSum +=i;
        }else {
            evenSum +=i;
        }
    }
    System.out.println("奇数的和:"+oddSum);
    System.out.println("偶数的和:"+evenSum);
}
/*run:
	奇数的和:2500
	偶数的和:2550
*/

3.输出1—1000能被5整数的数,并每行输出3个

public static void main(String[] args) {

    for (int i = 0; i <= 1000; i++) {
        if (i%5 == 0){
            System.out.print(i+"\t");
        }
        if (i%(5*3) == 0){
            System.out.println();

        }
    }
}
/*run:
	0	
	5	10	15	
	~	~	~
	995	1000	
*/

4.打印九九乘法表

//使用双层for循环实现九九乘法表的打印
//双层for循环顺序:先里再外
public static void main(String[] args) {
    //1.使用外层for循环用于控制打印的行数
    for (int j = 1; j <= 9; j++) {
        //2.使用内层for循环用于控制打印的列数
        /*i <= j:控制每一行的列数与当前行的行数相等
          注意:每当i +1 时,是每一行的列数+1
          */
        for (int i = 1; i <= j; i++) {
            System.out.print(i+"*"+j+"="+(i*j) +"\t");
        }
        System.out.println();
    }
}
/*run:
	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*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
	1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
	1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
	1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

*/

增强 For 循环

  • Java5 引入了一种主要用于数组或集合的增强型 for 循环
  • Java增强 for 循环语法格式如下:
//声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
//表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

for (声明语句:表达式)
{
    //代码语句
}

语法实例

遍历数组

public static void main(String[] args) {
    int[] numbers = {10,20,30,40,50};//定义了一个数组
	//for 循环
    for (int i = 0;i<5;i++){
        System.out.println(numbers[i]);
    }
    System.out.println("===========================");
    //增强 for 循环
    //遍历数组元素
    for (int x:numbers){
        System.out.println(x);
    }
}
/*run:
	10
	20
	30
	40
	50
	===========================
	10
	20
	30
	40
	50
*/

参考视频(狂神说Java)

Java流程控制06:While循环详解_哔哩哔哩_bilibili

Java流程控制07:DoWhile循环_哔哩哔哩_bilibili

Java流程控制08:For循环详解_哔哩哔哩_bilibili

Java流程控制09:打印九九乘法表_哔哩哔哩_bilibili

Java流程控制10:增强for循环_哔哩哔哩_bilibili

posted on 2022-08-06 19:32  落枫叶子  阅读(64)  评论(0编辑  收藏  举报