java程序流程控制——循环结构下for语句,while语句和do-while语句的比较及死循环/循环嵌套/break语句/continue语句的使用

前言:

学完循环结构了。记录下for语句,while语句和do-while语句的比较和死循环/循环嵌套/循环终止/循环跳转的使用心得。

循环结构的定义:控制某种代码的重复执行

 for语句

执行逻辑为:先判断再执行,表达结构如下

for(初始量;循环条件;迭代条件){需要重复的代码}

 例:通过for语句输入三次“我是无敌No.1”

  for(double x = 1 ; x <= 3; x++){
            System.out.println("我是无敌No.1!");
        }

使用场景:

1,可以作用于单体循环

例:通过for语句输入三次“我是无敌No.1”(条件递减)

  for (int  i = 30;i >= 10; i-=10 ){
            System.out.println("我是无敌No.1!");
        }

注:循环条件不一定为递增,也可以为递减(主要上面两个例的对比)

2,可以用于累加循环

练习1:用for语句求和:

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

        }
        System.out.println("1-100的相加为:"+sum);

练习2:运用for语句对1-100之间的奇数求和

  int sum1 = 0;
        for (int i = 0; i <100 ; i++) {
            if (i % 2 == 1){
                sum1 += i;
            }

        }
        System.out.println("1-100的奇数和为:"+sum1);

 练习3:运用for语句对1-100之间的奇数求和(简易算法,相比练习2,更能减轻程序负担,一个优秀的程序员一定要时刻考虑程序负担

   int sum2 = 0;
        for (int i = 1; i <100 ; i+=2) {
            sum2 += i;

        }
        System.out.println("1-100的奇数和为:"+sum2);

while语句 

执行逻辑为:先判断再执行,表达结构如下

while(循环条件){
需要重复的代码;
迭代条件;
}

例: 使用while语句输入三次“天才”

    int i = 0;
        while(i < 3 ){
            System.out.println("tian cai ");
            i++;
            
        }

使用场景:

和for语句一样,for语句能做的,while语句都能做,功能上与for语句没有任何不同。这里不再做其他例子说明。

for语句和while语句的对比

虽然for语句和while语句本质上没有任何不同,但根据语法结构,while语句更适用于不知道循环次数的场合,下面拿一个“珠穆朗玛峰”的案例进行说明

实验:已知珠穆朗玛峰高度为8848860,一张纸的厚度为0.1,在纸张足够大的前提下,纸张折叠多少次可以高于珠穆朗玛峰?

运算逻辑为:当纸张厚度不如珠穆朗玛峰时,纸张厚度*2,对折次数加1

使用while语句运算:

   double zhumu = 8848860;//珠穆朗玛峰高度
        double zhi = 0.1;//纸张厚度

       double count = 0;//纸张对折次数
        while (zhi < zhumu){//当纸张厚度不如珠穆朗玛峰时
            zhi *= 2;//纸张厚度*2
                count++;//对折次数加1
        }
        System.out.println(count);//输出纸张厚度

使用for语句运算:

 double zhumu = 8848860;//珠穆朗玛峰高度
 double zhi = 0.1;//纸张厚度
 double count = 0;//对折次数
   for(   ;zhi <= zhumu ;    ){ //若纸张厚度不如珠穆朗玛峰

            count++;//对着次数+1
            zhi *= 2;//纸张厚度*2

        }
    System.out.println(count);//输出纸张折叠次数

通过实验对比发现,for语句下实验虽然成功了,但初始量和迭代条件都是空白的,不符合人类逻辑。而while语句简单明了,更符合人类逻辑 。

所以虽然for语句和while语句功能一样,但根据语法结构,while语句更适用于不知道循环次数的场合;for语句更适用于知道循环次数的场合。

do-while语句 

 执行逻辑为:先执行再判断,表达结构如下

do{

循环语句;
迭代条件;
}while(循环条件)

例:输出三次ku

 int x =0;
        do {
            System.out.println("ku");
            x++;
        }while (x < 3);

使用场景: 

 适用于抢票系统,(重点为先执行语句,再判断是否满足条件)

例:抢一张票,判断有票后停止

   int x =0;
        do {
            System.out.println("抢到票了");
            x++;
        }while (x < 1);

问:为什么不用for语句或while语句?

答:最开始肯定没有票,不需要先判断有没有票

死循环

无休止的循环,表示形式如下:

1,运用for语句表示:

for (;;){

            System.out.println("我是死循环");
}

2,运用while语句表示:

while (true){
        System.out.println("我是死循环");
    }

3,运用do-while语句表示:

 do {
            System.out.println("我是死循环");
        }while (true);

注:由于死循环是不知道次数的循环,所以适合用while语句表示

使用场景

一般配合其他条件辅助使用

循环嵌套

 循环语句叠加其他循环语句,可实现多重循环效果

练习1:每天说三次我爱你,持续一周

for(int i = 1;i <= 7 ;i++){
            for (int j = 1; j <=3; j++) {
                System.out.println("我爱你"+i);
            }
            System.out.println("----------------------");

        }

练习2:输出每行每列四颗⭐

for (int i = 1; i <=4; i++) {  //列
            for (int j = 1; j <=4 ; j++) {//行
                System.out.print("⭐");

            }
            System.out.println();

 break语句和continue语句的对比

break和continue都是循环语句中的终止语句(仅在循环内有效,在循环外使用会报错)。break语句为终止循环内的代码,而continue为中止循环内的代码

1,break语句用于终止代码

例:说五遍我爱你,在第三遍停止

 for (int i = 1; i <=5 ; i++) {
            System.out.println("我爱你"+i);
            if (i == 3)
                break;
        }

 代码会在第三遍后停止

2,continue语句用于终止此行代码

例:说五遍我爱你,在第三遍停止,第四遍第五遍继续

for (int i = 1; i <=5 ; i++) {
            if (i == 3)
                continue;
            System.out.println("我爱你"+i);

        }

代码会绕过第三次

对比效果如下:

到此,循环结构总结结束

---------------------------------------------------------------------------------------------------------------------------------

分支结构可以看这里

java程序流程控制——分支结构下if语句和switch语句的比较及使用

想巩固下分支结构和循环结构的用法可以看这里

Scanner(文本扫描器)和Random(随机数生成器)的说明及使用,运用分支结构和循环结构编写猜数字游戏

最后

如果您看到了这篇文章,同时您也在学习java,希望您阅读这篇文章,希望与您一起讨论

基于黑马程序员的java学习笔记(持续更新)

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用不同选择结构循环结构的示例程序,用于处理一个整数数组: ```c #include <stdio.h> int main() { int arr[5] = {3, 5, 1, 4, 2}; int i, sum = 0; // 使用if else语句计算数组元素之和 for (i = 0; i < 5; i++) { if (arr[i] % 2 == 0) { sum += arr[i]; } else { sum -= arr[i]; } } printf("Sum (using if else): %d\n", sum); // 使用switch case语句查找数组中的最大值和最小值 int max = arr[0], min = arr[0]; for (i = 1; i < 5; i++) { switch (arr[i]) { case 1: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 2: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 3: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 4: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 5: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; } } printf("Max: %d, Min: %d (using switch case)\n", max, min); // 使用while循环结构计算数组元素之和 i = 0; sum = 0; while (i < 5) { sum += arr[i]; i++; } printf("Sum (using while): %d\n", sum); // 使用do while循环结构计算数组元素之和 i = 0; sum = 0; do { sum += arr[i]; i++; } while (i < 5); printf("Sum (using do while): %d\n", sum); return 0; } ``` 该程序使用不同的选择结构循环结构来处理整数数组。首先,使用if else语句计算数组元素之和。然后,使用switch case语句查找数组中的最大值和最小值。接下来,使用while循环结构和do while循环结构计算数组元素之和。最后,将结果打印出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值