【蓝桥杯Java_C组·从零开始卷】第三节、while循环&do while循环for循环(超重点)&break终止循环&continue结束本次循环

简介: 【蓝桥杯Java_C组·从零开始卷】第三节、while循环&do while循环for循环(超重点)&break终止循环&continue结束本次循环

开篇主旨——循环四要素

初始值

表达式

循环体

迭代器

所有的循环无论怎么封装,都会遵循着这是个点,就算用hash的方法也算是迭代器的用法。


只要控制好这四个,那么您循环的功底也就满足了,后期递归啥的也就容易理解了。


while循环

while:中文叫【当…时】,其实就是当条件满足时就执行代码,一旦不满足了就不执行了。


语法:while (条件) { 满足条件就执行 }


因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了。也就是说控制好【表达式】与【迭代器】即可。

package Action;
public class demo {
  public static void main(String[] args) {
    // 1. 初始化条件
    int num = 0;
    while (num < 10) {//2. 条件判断
      // 3. 要执行的代码
      System.out.println(num);
      // 4. 自身改变
      num = num + 1;
    }
  }
}

如果没有自身改变,那么就会一直循环不停了。


do{}while()循环

与while循环的区别就是,无论表达式是否成立,都会进行一次判断。

package Action;
public class demo {
  public static void main(String[] args) {
    int a = 0;//初始值
    do{
      //循环体
        System.out.println(a);
        a++;//迭代器
    } while (a<10);//表达式
  }
}

由于do{}while()用的不多,就不多做表述了。


for循环(重点)

和 while 和 do while 循环都不太一样的一种循环结构


道理是和其他两种一样的,都是循环执行代码的


语法格式如下:

for (int i = 0; i < 10; i++) {
  System.out.println(i);    
}

那么,for循环的四要素是否齐全呢,其实一眼便可以区分出来,都是很明显的。


for的用法也有很多,各种变化初始值,正序,倒序都可以执行。


强化循环练习:

package Action;
import java.util.Scanner;
public class demo {
  @SuppressWarnings("resource")
  public static void main(String[] args) {
//        1盈盈为了考验令狐冲夺冠的决心,要他说一百遍“我能行!”
//        int i = 100;
//        while (i > -1) {
//            System.out.println("我能行!!!!");
//            i--;
//        }
//
//        2.本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(用double存储)
//        double money = 10000;
//        byte i = 0;
//        while (i < 5) {
//            money += money * 0.003;
//            System.out.println(money);
//            i++;
//        }
//
//        3. 计算出1—100之间所有能被3整除的整数的和?
//        int i = 100;
//        int sum = 0;
//        while (i >= 0) {
//            if (i % 3 == 0) {
//
//                sum += i;
//            }
//            i--;
//        }
//        System.out.println(sum);
//
//        4. 计算1000以内所有不能被7整除的整数之和?
//        int i = 1000;
//        int sum = 0;
//        while (i >= 0) {
//            if (i%7 != 0) {
//                sum += i;
//            }
//            i--;
//        }
//        System.out.println(sum);
//
//
//        5.用while做 求10到20的累加和
//        int i = 10;
//        int sum = 0;
//        while (i<=20){
//            sum += i;
//            i++;
//        }
//        System.out.println(sum);
//
//        6. 找出一个数的所有因子数
//        Scanner sc = new Scanner(System.in);
//        System.out.print("请输入一个数");
//        int num = sc.nextInt();
//        int i = 1;
//        if (num == 0) {
//            System.out.println("你的因子数为0");
//        } else {
//            while (i <= num/2) {
//                if (num % i == 0 ) {
//                    System.out.println(i);
//                }
//                i++;
//            }
//        }
//
//        7. 输入一个数,判断这个数是否是素数;
//    Scanner in = new Scanner(System.in);
//    System.out.print("请输入一个数字:");
//    int x = in.nextInt();
//    int i = 2;
//    if (x == 1 || x == 0) {
//      System.out.println("不是素数");
//    }
//    boolean isf=true;
//    while (i < x) {
//      if (x % i == 0) {
//        isf=false;
//        break;
//      }
//      i++;
//    }
//    System.out.println(isf?"素数":"不是素数");
//        8 定义一个正整数如:1205  统计它的各位数字中零的个数,并求各位数字中的最大者。
//        Scanner sc = new Scanner(System.in);
//        System.out.print("请输入一个正整数:");
//        int num = sc.nextInt();
//        int max = 0; //最大值
//        int count = 0; // 计数
//        while (num > 0) {
//            int j = num % 10;
//            if (j == 0) {
//                count++;
//            } else {
//                if (j > max) {
//                    max = j;
//                }
//            }
//            num /= 10;
//        }
//        System.out.println("最大值是" + max + " 零一共有" + count + "个");
//
//        9 有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完
//        int sum =1020;
//        int count=0;
//        while (sum!=0) {
//          sum=sum/2-2;
//        count++;
//      }
//        System.out.println(count+"天");
//        10猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
//        int sum=1;//最后一天的一个
//        int half=0;//用于计算昨天的
//        int i=0;//
//        while (i<9) {//9天循环9次,第十天1个初始值
//          half=(sum+1)*2;
//        sum=half;
//        i++;
//      }
//        System.out.println(half);
//        11判断一个数是否是完全数(完数指的是一个数的所有因子数的和等于这个数本身,例如 6=1+2+3,即6就是完全数)
//      int num = 6;
//      int sum=0;
//      for (int i = 1; i < num; i++) {
//        if(num%i==0) {
//          sum+=i;
//        }
//      }
//      if(sum==num) {
//        System.out.println(num+"是完数");
//      }
//        12.循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误(使用break)
//    int[] arr = new int[5];
//    Scanner sc = new Scanner(System.in);
//    for (int i = 0; i < 5; i++) {
//      arr[i] = sc.nextInt();
//      if (arr[i] < 0) {
//        break;
//      }
//    }
//    for (int i = 0; i < arr.length; i++) {
//      System.out.println(arr[i]);
//    }
//        13.循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例(使用continue)
    Scanner sc = new Scanner(System.in);
    System.out.println("班级总人数");
    int count = sc.nextInt();
    // 每个人的成绩
    int oneNum = 0;
    // 统计班级里Java成绩大于80的人数
    int num = 0;
    // 循环录入每个人的Java成绩
    for (int i = 1; i <= count; i++) {
      System.out.println("请输入第" + i + "个同学的成绩:");
      oneNum = sc.nextInt();
      if (oneNum < 80) {
        continue;// 小于80分跳过
      }
      num++;
    }
    // 计算大于等于80的学员比例
    System.out.println("80分以上的学生人数为:" + num);
    // 计算大于80分的学生所占百分比
    double result = (double) num / count * 100;
    System.out.println("80分学员所占百分比:" + result + "%");
  }
}

希望能对大家有所帮助。

相关文章
|
4月前
|
Java
Java编程:理解while循环的使用
总结而言, 使用 while 迴圈可以有效解决需要多次重复操作直至特定條件被触发才停止執行任务场景下问题; 它简单、灵活、易于实现各种逻辑控制需求但同时也要注意防止因邏各错误导致無限迁璇発生及及時處理可能発生异常以确保程序稳定运作。
406 0
|
9月前
|
传感器 安全 Java
《从头开始学java,一天一个知识点》之:循环结构:for与while循环的使用场景
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白
291 22
|
11月前
|
Java
Java快速入门之判断与循环
本文介绍了编程中的流程控制语句,主要包括顺序结构、判断结构(if语句和switch语句)以及循环结构(for、while和do...while)。通过这些语句可以精确控制程序的执行流程。if语句有三种格式,分别用于简单条件判断、二选一判断和多条件判断。switch语句适用于有限个离散值的选择判断,而循环结构则用于重复执行某段代码,其中for循环适合已知次数的情况,while循环适合未知次数但有明确结束条件的情况,do...while则是先执行后判断。文中还提供了多个示例和练习,帮助读者理解并掌握这些重要的编程概念。
|
12月前
|
Java
Java之for循环
Java 提供了三种 for 循环方式:fori、foreach 和 Stream.foreach。fori 是最早的循环形式,现已较少使用;foreach 是对 fori 的语法糖,编译时会自动转换;Stream.foreach 结合 lambda 表达式使用,代码更简洁,但不支持 break 和 return。
358 11
Java之for循环
|
11月前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
509 6
|
11月前
|
算法 Java C++
【潜意识Java】蓝桥杯算法有关的动态规划求解背包问题
本文介绍了经典的0/1背包问题及其动态规划解法。
391 5
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
350 3
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
228 0
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
204 0