大数据笔记6—java基础篇2(for、switch、while循环及例子)

苟有恒,何必三更眠五更起; 最无益,莫过一日曝十日寒。

for循环

for循环是我们在实际开发中应用到的最多的循环, 它一般适用于循环次数固定的情况

初始化条件: 用来记录 循环的初始状态的. 即: 从哪开始循环

判断条件: 用来决定循环是否继续执行的, 条件成立, 则循环继续执行, 条件不成立, 整个循环就结束了

控制条件: 用来控制初始化条件变化的, 一般是每循环一次, 初始化条件+1

循环体: 需要用来重复做的事情(代码)

//for(初始化条件;判断条件;自增条件){
  循环体;
}
eg:
	for(int i =1;i<=3;i++){
		System.out.println("循环体"+i)}

执行流程

先执行初始化条件

然后执行判断条件, 看其结果是true, 还是false

如果是false, 则整个循环结束

如果是true, 则执行循环体

执行控制条件

返回第2步, 继续往下重复执行

eg

通过for循环, 打印10次"Hello World!".

参考代码

//需求: 打印10次HelloWorld
    public class ForDemo01 {    
    public static void main(String[] args) {        
    for (int i = 0; i < 10; i++) {            
    System.out.println("Hello World!");        
    }    
}
}

案例二: 打印数字

需求

通过for循环, 打印1~5之间的数字.

通过for循环, 打印5~1之间的数字.

参考代码

public class ForDemo02 {    
    public static void main(String[] args) {     
 //1. 通过for循环, 打印1~5之间的数字.        
        for (int i = 1; i <= 5 ; i++) {           			
            System.out.println(i);        }                                    System.out.println("--------------");                             //2. 通过for循环, 打印5~1之间的数字  
    for (int i = 5; i >= 1; i--) {            System.out.println(i);        
	}   
}}

案例三: 求和案例

需求

通过for循环, 获取1 ~ 5之间的数字之和.

参考代码

public class ForDemo03 {    
    public static void main(String[] args) {        
        *//1. 定义变量sum, 用来记录数据和.*        
            int sum = 0;        
        *//2. 通过for循环, 依次获取到1~5之间的数字.*        
            for (int i = 1; i <= 5; i++) {            
                *//3. 将获取到的数字, 累加给变量sum.*            
                    sum += i;        
            }        
        System.out.println("1 - 5之间的数字之和是: " + sum);    
    }}

求偶数和

public class ForDemo04 {
    public static void main(String[] args) {
        //1. 定义变量sum, 用来记录数据和.
        int sum = 0;
        //2. 通过for循环, 依次获取到1 - 100之间的数字.
        for (int i = 1; i <= 100; i++) {
            //3. 判断当前遍历到的数字是否是偶数.
            if (i % 2 == 0) {
                //4. 走到这里, 说明是偶数, 累加给变量sum.
                sum += i;
            }
        }
        //5. 打印结果.
        System.out.println("1 - 100之间的偶数之和是: " + sum);
    }
}

细节: 求和变量必须定义到for循环的外边, 如果定义到for循环的内容, 则每次循环都会被重置.

获取到所有的水仙花数, 并将结果打印到控制台上.

解释:

水仙花数是一个3位数的整数.

该数字的各个位数立方和相加等于它本身.

例如: 153就是水仙花数, 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 153

参考代码

public class ForDemo05 {
    public static void main(String[] args) {
        int ge, shi, bai;
        for (int i = 100; i < 1000; i++) {
            ge = i / 1 % 10;
            shi = i / 10 % 10;
            bai = i / 100 % 10;
            if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai)
                System.out.println(i);
        }
    }
}

计数思想

package com.itheima.Array;

public class ArrayDemo02{
    public static void main(String[] args){
        int ge,shi,bai,count = 0;
       for (int i = 100; i < 1000; i++) {
            ge = i / 1 % 10;
            shi = i / 10 % 10;
            bai = i / 10 / 10 % 10;
   if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai ) {
        System.out.println(i);
        count++;
     }
}
 System.out.println(count);

 }
}

while循环

在不确定循环多少次的情况下使用while循环

打印十次HelloWorld

public static void main(String[] args){
    int i = 0;
    while(i<10){
        System.out.println(i+"HelloWorld");
        i++;
    }
}

求和

获取1~100之间所有偶数和, 并将结果打印到控制台上

public static void main(String[] args){
    int i = 0,sum=0;
    while(i<=100) {
        if (i % 2 == 0){
            sum += i;
        }
        i++;
    }

        System.out.println(sum);


}

案例三: 珠穆朗玛峰

需求
⦁ 已知世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米)
⦁ 假如我有一张足够大的纸,它的厚度是0.1毫米
⦁ 请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
⦁ 即: 纸张的厚度 >= 珠穆朗玛峰的高度

public class while_demo_03 {

    public static void main(String[] args) {
        //1. 定义变量, 记录纸张的厚度.
        double paper = 0.1;
        //2. 定义变量, 记录珠峰的高度.
        int zf = 8844430;
        //3. 定义变量, 记录纸张的折叠次数.
        int count = 0;
        //4. 通过while循环实现, 获取折叠次数.
        while (paper < zf) {
            paper *= 2;
            count++;
        }
        //5. 打印结果.
        System.out.println("折叠次数为: " + count);
    }

}

do—while

简单了解即可

do{
循环体;
}
while(判断条件)

打印HelloWorld

int i=1;
do{
     System.out.println("Hello World! " + i);
}while(i<10);

三种循环之间的区别

do…while循环和其他两个循环之间的区别
do.while循环是先执行一次, 后判断.
而其他两个循环都是先执行判断条件, 然后决定是否执行循环体.

for循环和其他两个循环之间的区别
for循环执行结束后, 初始化条件就不能继续使用了.
而其他两个循环执行结束后, 初始化条件还可以继续使用.

死循环

for(;😉{循环体代码 }

while(true){循环体代码 } (常用)

do{循环体代码 }while(true);

break

终止循环,相当于跳出循环

e.g.(break)

打印10次HelloWorld, 当打印第五次的时候, 结束循环.

public static void main(String[] args){
    for (int i = 0; i <100 ; i++) {
        if(i==5){
            break;
        }
        System.out.println(i);

    }


}

continue

到continue终止本次循环,接着继续下次的循环。

e.g.(continue)

打印1~10之间, 所有不是3倍数的整数.

public static void main(String[] args){
    for (int i = 0; i <10 ; i++) {
        if(i%3==0){
            continue;
        }
        System.out.println(i);
    }
}

案例

综合案例1

打印2020年1月至2023年12月之间所有的月份, 格式为: XXXX年XX月

public static void main(String[] args){
    for (int i = 2020; i <=2023; i++) {   //这个打印年
        
        for (int j = 1; j < 12; j++) {    //这个打印月
            
            System.out.println(i+"年"+j+"月");//输出年+月
        }
        //每年都分开
        System.out.println("=============================");
    }


}

综合案例2

​ 在控制台打印一个3行5列的矩形星星序列, 具体格式如下:

在这里插入图片描述

public static void main(String[] args){
    for (int i = 1; i <=5; i++) {  //行

        for (int j = 1; j <=3; j++) {
            System.out.print("*"+"\t");//列
        }
        System.out.println();
    }
}

打印倒三角形 (正直角三角只需要调换一个内层的for循环的值即可

public static void main(String[] args){
    for (int i = 1; i <=5; i++) {

        for (int j = i; j <=5; j++) {//替换i或5
            System.out.print("*"+"\t");//年
        }
        System.out.println();
    }


}

99乘法表

public class ForForDemo08 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {       //外循环控制行
            for (int j = 1; j <= i; j++) {   //内循环控制列
                System.out.print(j + " * " + i + " = " + i * j + "\t");           
            }
            //内循环执行结束, 意味着一行打印完毕, 记得要换行.
            System.out.println(); 
        }
    }
}

随机数

math.random() //随机生成0.0~1.0之间的数字。包左不报右类似[0,10)

生成五个随机数打印出来

public static void main(String[] args){
    int num;
    for (int i = 0; i < 5; i++) {
        num = (int)(Math.random()*10+1);
        System.out.println(num);
    }
}

猜数字

⦁ 生成一个1-100之间的随机数, 让用户来猜
⦁ 如果猜的数字比生成的随机数大,提示你猜的数据大了
⦁ 如果猜的数字比生成的随机数小,提示你猜的数据小了
⦁ 如果猜的数字与生成的随机数相等,提示恭喜你猜中了

public static void main(String[] args) {
    int guessNum = (int) (Math.random() * 100 + 1);
    int inputNum = 0;
    while (true) {
        System.out.println("请录入您猜的数据(1-100): ");
        inputNum = new Scanner(System.in).nextInt();
        if (inputNum > guessNum) {
            System.out.println("您猜的数字大了!");
        } else if (inputNum < guessNum) {
            System.out.println("您猜的数字小了!");
        } else {
            System.out.println("恭喜您, 猜对了, 请找班任领取奖品... 就业班晋级卡");
            break;
        }

    }
}

到此javase的循环告一段落 下次写数组和方法、方法重载等,即将进入java的大门啦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值