HM Day 03

HM Day 03

5-31

switch语句

格式:

    数据类型 n =; 
    //对n的取值进行匹配,哪个case值匹配,就执行下面的语句体,遇到break结束。
    //n的数据类型,只能是byte short int char 字符串(String)和枚举这几种数据类型
    switch(n){
        case1:
            语句体;
            break;
        case2:
            语句体;
            break;
        ...
        default:
            语句体;
            break;
    }

switch案例

public class Demo{
    public static void main(String[] args){
        int week = 8;
        //对week进行匹配
        switch(week){
            case 1:   
            case 2:
            case 3:
            case 4:   
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("你输入有误");
                break;
        }
    }
}
swtich语句的注意事项:
    1.switch语句匹配的数据,数据类型只能是固定的几种
    	byte short int char
    	JDK5之后可以有枚举(没学)
    	JDK7之后可以是字符串(String)
    2.case后面的值,不能重复,只能是常量不能是变量

switch 穿透现象:如果case下面没有写break语句,就会穿透到下一个case继续执行,直到遇到break才结束。

public class Demo{
    public static void main(String[] args){
        //键盘录入一个整数,表示星期几
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入今天星期几:");
        int week = sc.nextInt();
        
        //对week进行匹配
        switch(week){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            	System.out.println("工作日");
            	break; 
            case 6:
            case 7:
            	System.out.println("休息日");
            	break;
            default:
                System.out.println("你输入有误");
                break;
        }
    }
}

for循环语句

格式:

水仙花数问题

/*
分析思路:
	1)遍历所有的三位数(100~999)
	2)获取每一个三位数的个位、十位、和百位
	3)判断这个三位数数是否满足水仙花数的规则
		这个数 == 个位*个位*个位+十位*十位*十位+百位*百位*百位
	4)把满足条件的三位数打印数出来
*/
//1)遍历所有的三位数
for(int i=100;i<=999;i++){
    
    //2)获取每一个三位数的个位、十位、和百位
    int ge=i%10;
    int shi=i/10%10;
    int bai=i/100%10; 
    
    //3)判断这个三位数数是否满足水仙花数的规则
    if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
        System.out.println(i); 
    }
} 

while循环语句

折纸问题

package com.ithema.test;

/**
 * @Package: com.ithema.test
 * @ClassName: demo6
 * @Author: PC
 * @CreateTime: 2021/5/31 18:44
 * @Description:
 * 1.珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.0001米。
 * 2.请问,折叠多少次,可以折成珠穆朗玛峰的高度。
 */
public class demo6 {
    public static void main(String[] args) {
        int couunt =0;
        long Everest = 8844430L;
        double paper = 0.1;
        while(paper <= Everest){
            paper = paper * 2;
            couunt++;
            System.out.println("折叠"+couunt+"次的高度为:"+paper+"毫米");//??????折叠27次的高度为:1.34217728E7毫米?????
        }
        System.out.println("超过珠穆朗玛峰的高度需要折叠"+couunt+"次");
		/*
		运行结果:

		折叠1次的高度为:0.2毫米
		折叠2次的高度为:0.4毫米
		折叠3次的高度为:0.8毫米
		折叠4次的高度为:1.6毫米
		折叠5次的高度为:3.2毫米
		折叠6次的高度为:6.4毫米
		折叠7次的高度为:12.8毫米
		折叠8次的高度为:25.6毫米
		折叠9次的高度为:51.2毫米
		折叠10次的高度为:102.4毫米
		折叠11次的高度为:204.8毫米
		折叠12次的高度为:409.6毫米
		折叠13次的高度为:819.2毫米
		折叠14次的高度为:1638.4毫米
		折叠15次的高度为:3276.8毫米
		折叠16次的高度为:6553.6毫米
		折叠17次的高度为:13107.2毫米
		折叠18次的高度为:26214.4毫米
		折叠19次的高度为:52428.8毫米
		折叠20次的高度为:104857.6毫米
		折叠21次的高度为:209715.2毫米
		折叠22次的高度为:419430.4毫米
		折叠23次的高度为:838860.8毫米
		折叠24次的高度为:1677721.6毫米
		折叠25次的高度为:3355443.2毫米
		折叠26次的高度为:6710886.4毫米
		折叠27次的高度为:1.34217728E7毫米
		超过珠穆朗玛峰的高度需要折叠27次
		*/
    }
    }


dowhile语句

格式:

三种循环的区别

forwhiledo...while的区别
	forwhile循环:  必须满足条件才执行
	do...while: 不管条件是否成立,循环语句体至少执行一次。

forwhile的区别
	for循环:控制循环的变量,只能在循环里面使用
	while循环:控制循环的变量,可以在循环外面使用

如何选择使用哪种循环
	知道次数,选择使用for循环
	不知道次数,选择使用while循环

死循环

循环条件一直为true的循环叫死循环(停不下来的循环)。

for(;;){
	System.out.println("黑马程序员");
}

while(true){
	System.out.println("黑马程序员");
}

do{
    System.out.println("黑马程序员");
}while(true);

//注意:死循环后面的代码是执行不到的,除非死循环中有跳转语句

跳转语句

  break的使用场景和作用?
	场景:switch语句和循环语句
	作用:跳出switch和跳出循环
    
  continue的使用场景和作用?
    场景:只能在循环语句中使用
    作用:跳过本次循环,进入下一次循环
    

减肥计划

代码思路:
	1)给减肥计划的代码,套一层while死循环
	2)case值是0时,使用break跳出循环
public class Demo{
    public static void main(String[] args){
        wc: while(true){
            //键盘录入一个整数,表示星期几
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入今天星期几:");
            int week = sc.nextInt(); 
            //对week进行匹配
            switch(week){
                case 0:
                    System.out.println("感谢使用,已退出");
                    break wc; //跳出带标签的语句
                case 1:
                    System.out.println("跑步");
                    break;
                case 2:
                    System.out.println("游泳");
                    break;
                case 3:
                    System.out.println("慢走");
                    break;
                case 4:
                    System.out.println("动感单车");
                    break;
                case 5:
                    System.out.println("拳击");
                    break;
                case 6:
                    System.out.println("爬山");
                    break;
                case 7:
                    System.out.println("好好吃一顿");
                    break;
                default:
                    System.out.println("你输入有误");
                    break;
            }
        }
    }
}

随机数Random

产生随机数的步骤

//1.在class的上面导包
import java.util.Random;
//2.在主方法中创建Random对象
Random r = new Random();
//3.指定范围生成随机数
int num = r.nextInt(10); //[0,10)

提问

//1.在class的上面导包
import java.util.Random;
public class Demo{
    public static void main(String[] args){
        //2.创建Random对象
        Random r=new Random();

        //3.生成指定范围的随机整数、
        int num1=r.nextInt(10); //范围[0,9]
        System.out.println(num1);
        
        int num2=r.nextInt(11); //范围[0,10]
        System.out.println(num2);
        
        int num3=r.nextInt(10)+1; //[0,9]+1 -> [1,10]
        System.out.println(num3);
        
        int num4=r.nextInt(71)+50; //范围[50,120]-50 --> [0,70] +50
        System.out.println(num4);
    }
}

猜字小游戏

分析思路:
	1.生成一个[1,100]范围内的随机数
	2.键盘录入猜这个数字是多少
	3.比较录入的整数和随机数的大小
		如果比随机数大:输出猜大了
		如果比随机数小:输出猜小了
		如果和随机数相同:输出猜中了
import java.util.Scanner;
import java.util.Random;
public class test1Guess{
	public static void main(String[]args){
		
		/*
		需求:猜数字
		1-100内的数字,系统随机生成一个数字,用户键盘录入猜的数字,直到才对为止。
		*/
		System.out.println("~~~~~~猜字游戏~~~~~");
		Scanner sc = new Scanner(System.in);
		
		Random r = new Random();
		int rd = r.nextInt(100)+1;
		while(true){
			System.out.println("你猜的数字是:");
			int guess = sc.nextInt();
			if(guess<rd){
				System.out.println("你猜小了!");
			}else if(guess>rd){
				System.out.println("你猜大了!");
			}else{
				System.out.println("恭喜你,猜对了!");
				break;
			}
		}
		
	}
}
~~~~猜字游戏~~~~~");
		Scanner sc = new Scanner(System.in);
		Random r = new Random();
		int rd = r.nextInt(100)+1;
		while(true){
			System.out.println("你猜的数字是:");
			int guess = sc.nextInt();
			if(guess<rd){
				System.out.println("你猜小了!");
			}else if(guess>rd){
				System.out.println("你猜大了!");
			}else{
				System.out.println("恭喜你,猜对了!");
				break;
			}
		}
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值