java学习培训期笔记和重要知识归纳4(循环&Random)

本文详细介绍了Java中的while循环、do...while循环、break和continue的使用、死循环的概念及其应用,以及嵌套循环的示例。此外,还探讨了如何生成随机数。
摘要由CSDN通过智能技术生成

一、while循环

 语法:
 初始化条件表达式;
 while(条件表达式){
     循环体;
     控制条件表达式;
   }
  执行顺序:
       1、执行初始化条件表达式
       2、执行条件表达式进行判断,
          如果结果为true,就执行循环体
          如果结果为false,就不执行
       3、执行循环体
       4、执行控制条件表达式
       5、执行第二步

public class WhileDemo {
    //7、打印出1-100之间所有不是7的倍数和不包含7的数字,并求和
    public static  void  main(String[] args){
     int i= 1;//初始化条件表达式
        int sum = 0;//在循环体外定义一个变量,用来存储累加的和
          while (i <= 100){//条件表达式
              //循环体
              //7的倍数: i % 7 == 0
              //个位是7: i % 10 == 7
              //十位是7: i / 10 == 7
              if(!(i % 7 == 0 || i % 10 == 7 || i / 10 == 7)){
                  System.out.println("i = " + i);
                  sum = sum + i;//将不符合条件的数进行相加
              }

              i++;//控制条件表达式
          }
          System.out.println("sum = " + sum);
    }
}

二、do...while...循环

 do...while...循环
   初始化条件表达式;
   do{
      循环体;
      控制条件表达式;
   }while(条件表达式);
 
  执行过程:
       1、执行初始化条件表达式
       2、执行循环体
       3、执行控制条件表达式
       4、执行条件表达式,如果结果为正确就回到第二步,如果结果为错误就不执行
 
 注意:
 1、无论初始化条件是否符合执行的条件表达式都会至少执行1次
 2、会先执行控制条件表达式将条件改变了之后再执行条件表达式
      实际执行条件表达式的时候已经不是初始化条件表达式了,是改变之后的
      无论后面的执行情况如何都会至少执行一次

public class DoWhileDemo {
    public static void main(String[] args) {
        int i = 100;//初始化条件表达式
        do {
            System.out.println("i = " + i);
            i++;//控制条件表达式
            System.out.println("i = " + i);
        }while (i <= 10);//条件表达式
    }
}

三、break&continue

 break:如果是一层循环,那么将循环停止
      如果是多层循环嵌套,那么就结束内层循环
      外层循环继续执行
 continue:跳过当前的循环,依然会执行下一次循环

public class Break_Continue {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10){
            if(i == 5){
                //break;
                i++;
                continue;
            }else{
                System.out.println("i = " + i);
                i++;
            }

        }
    }
}

四、死循环

 死循环:
 循环不断的执行没有停止的条件
 死循环一般和break一起使用,一般要在里面写一个分支语句
 使用场景:
 不知道要执行多少次,知道有一个正确的答案,能够将程序停止

public class EndlessLoop {
    public static void main(String[] args) {
        //三个条件都不给会不断的执行
//        for(;;){
//            System.out.println("我是一个死循环");
//        }

        //有初始化条件表达式和控制条件表达式就可以实现计数的操作
//        for(int i = 1;; i++){
//            System.out.println("i = " + i);
//        }
        while(true){//条件表达式
            System.out.println("死循环");
        }
    }
}

五、嵌套循环

  循环嵌套:
  当我们有多个循环需要执行,一个循环属于另外一个循环的执行体,我们会进行循环的嵌套

例1:九九乘法表

​
public class Qt {
    public static void main(String[] args) {
        /**
         * 九九乘法表
         */
        //外层循环控制打印的行数
        for(int i = 1; i <= 9; i++){
            //内层循环控制每层打印的个数
            //每行打印的个数和行数是相同
            for(int j = 1; j <= i; j++){
                System.out.print(i + " * " + j + " = " + (i * j) + "\t");
            }
            //每行打印完成之后换到下一行
            System.out.print("\n");
        }
    }
}

​

 

例2:质数(素数):
 除了质素之外的数是和数,还有0 1
 因素:被除数除以除数,余数为0的时候,除数和商就是被除数的因数
 概念:除了1和它本身之外,没有其他的因素
 在进行除法运算的时候,余数一直不为0,那么这个数就是一个质数
 拿 2 ~ n - 1之间的数进行求余运算,看余数是否一直不为0

public class Prime {
    public static void main(String[] args) {
        int index = 0;
        //找出100以内所有的质数
        //外层循环控制比较的次数
        for(int i = 2; i <= 1000000; i++){
            //默认所有的数都是质数
            boolean flag = true;//设置一个标识,如果说标识一直没有改变,说明这个数是质数
            //内层循环控制哪些数和i进行求余运算
            //开根号 Math.sqrt(double)
            for(int j = 2; j <= Math.sqrt(i); j++){
                //如果说i被j给整除了,余数为0了说明这个数不是质数,就把标识改掉
                if(i % j == 0){
                    flag = false;
                    //如果flag的值已经改变了,说明这个数已经不是质数了,就不需要再往后进行比较的了
                    break;
                }
            }
            if(flag){
                System.out.println("i = " + i);
                index++;
            }
        }
        System.out.println("一共有" + index + "个");
    }
}

六、Random

随机数函数:

//导包:
//在java中已经提供的类,我们可以对其进行引用,导包就是找到这个类的地址
//引用的时候先将这个类写好,报错的时候,光标放在报错的地方,使用快捷键alt + enter
import java.util.Random;:
/**
 * 方式1:Math.random():数学类中用来产生随机数的方法
 * 方式2:Random类
 */
public class RandomDemo {
    public static void main(String[] args) {
        //要使用类就要创建对象,如何创建对象
        //语法:
        //类名 对象名 = new 类名();
        Random r = new Random();

        //可以使用对象去调用类中的方法,方法就是这个类的功能
        //产生一个0 - 1之间的随机小数,包含0但是不包含1
        double a = r.nextDouble();
        System.out.println("a = " + a);

        //产生一个int范围内的整数
        int b = r.nextInt();
        System.out.println("b = " + b);

        //产生0 到 参数之间的随机整数
        int c = r.nextInt(10);//bound是一个参数
        System.out.println("c = " + c);

        //如果要产生两个数范围之内的数值
        //65 - 90
        //        65 + 0 ~ 25
        int num = 65 + r.nextInt(90 - 65);
        System.out.println("num = " + num);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值