【蓝桥杯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 + "%");
    }
}

希望能对大家有所帮助。

上一篇:对我国域名系统安全问题的思考


下一篇:插入排序和分治排序