第三天javaSE基础

Java EE基础班课程(第三天)

学习目标

  • 掌握switch语句的使用
  • 掌握循环语句
    • for循环
    • while循环
    • do-while循环
  • 流程控制语句
    • continue
    • break
  • 熟悉三种循环区别
  • 死循环
  • 掌握Random的使用

switch语句

1.1格式和执行流程

/*
    switch语句:
        格式:
            switch (表达式的值){
            case 值:
                语句体;break;
                ...
            default:
                语句体
            }
         执行流程:
            1.switch 语句后面表达式的值的数据类型
                可以是 byte short int String enum char
            2.和case语句后的值进行匹配
                如果匹配的上,就执行对应的语句体,在执行break
                如果都不匹配执行 default 语句


 */
//键盘录入一个整数,输出对应星期几
public class Demo01Switch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        //接收数据
        int week = sc.nextInt();
        //使用switch语句 判断星期几
        switch (week){
            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("您输入的数据不匹配!!!");
        }

    }
}


1.2 测试switch语句后面表达式的值的数据类型

/*
     switch 语句后面表达式的值的数据类型
                可以是 byte short int String enum char

     常量优化机制
        byte b = 10;
 */
public class Demo02Switch {
    public static void main(String[] args) {
        Week week = Week.Sunday;
        switch (week){
            case Monday:
                System.out.println("周一");break;
            case Sunday:
                System.out.println("周日");break;
            default:
                System.out.println("您的输入不匹配!!!");
        }

        /*char b = 49; //0 --65535
        switch (b) {
            case '1':
                System.out.println("字符一");
                break;
            default:
                System.out.println("您输入的不是字符1");
        }
*/
        //就业班讲枚举
        /*String s = "1234";
        switch (s) {
            case "123":
                System.out.println("一二三");
                break;
            default:
                System.out.println("您输入的不是123");
        }*/

        /*int b = 10;
        switch (b) {
            case 1:
                System.out.println("一");
                break;
            default:
                System.out.println("您输入的不是1");
        }*/
        /*short b = 10;
        switch (b) {
            case 1:
                System.out.println("一");
                break;
            default:
                System.out.println("您输入的不是1");
        }*/
        /*byte b = 1;
        switch (b) {
            case 1:
                System.out.println("一");
                break;
            default:
                System.out.println("您输入的不是1");
        }*/
    }
}
enum Week{
    Monday,Sunday
}
import java.util.Scanner;

/*
    键盘录入一个数字输出对应月份
    分析:
        1.键盘录入
        2.使用switch语句输出对应的月份
	
 */
public class Demo04练习 {
    public static void main(String[] args) {
        //1.键盘录入
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个月份:");
        int month = scanner.nextInt();
        //2.使用switch语句输出对应的月份
        switch (month){
            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;
            case 8 :System.out.println("八月");break;
            case 9 :System.out.println("九月");break;
            case 10 :System.out.println("十月");break;
            case 11 :System.out.println("十一月");break;
            case 12 :System.out.println("十二月");break;
            default: System.out.println("您输入月份不匹配!!!");
        }
    }
}

1.3switch语句的特点 case语句具有穿透性

import java.util.Scanner;

/*

     case语句穿透性:
	     case语句只有遇到break语句才停止,否则就继续执行直到遇到break才停止,若没有break,就执行到switch语句结束

    键盘录入一个数字输出对应季节  case语句穿透性

    分析:
        1.键盘录入
        2.月份对应的季节
            3 4 5   春天
            6 7 8   夏天
            9 10 11 秋天
            12 1 2  冬天
        3.使用switch语句 书写代码
 */
public class Demo05练习 {
    public static void main(String[] args) {
        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份");
        int month = sc.nextInt();
        //3.使用switch语句 书写代码
        switch (month){
            case 12 :
            case 1 :
            case 2 :System.out.println("冬天");break;
            case 3 :
            case 4 :
            case 5 :System.out.println("春天");break;
            case 6 :
            case 7 :
            case 8 :System.out.println("夏天");break;
            case 9 :
            case 10 :
            case 11 :System.out.println("秋天");break;

            default: System.out.println("您输入月份不匹配!!!");
        }
    }
}

1.4减肥计划

/*
    需求:键盘录入星期数,显示今天的减肥活动。
        周一:跑步 
        周二:游泳 
        周三:慢走 
        周四:动感单车 
        周五:拳击 
        周六:爬山 
        周日:好好吃一顿 
     分析:
        1.键盘录入
        2.使用switch语句判断 输出

 */
public class Demo06减肥计划 {
    public static void main(String[] args) {
        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();
        // 2.使用switch语句判断 输出
        switch (week){
            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("您输入星期数不匹配!!!");
        }
    }
}

for循环

2.1循环分类

* for 循环
* while 循环
* do-while 循环

2.2for循环入门

/*
    格式:
        for (初始化语句;条件判断语句;条件控制语句) {
            循环体语句;
        }
    执行流程:
        1.执行初始化语句
        2.条件判断语句  如果判断语句的值 为true
        3.执行循环体语句
        4.条件控制语句
        5.继续执行第二步  直到条件判断语句为false 结束for循环


 */
public class Demo01For入门 {
    public static void main(String[] args) {
        for (int i = 1;  //  执行初始化语句
             i <= 3;     // 条件判断语句
             i++) {      // 条件控制语句
            System.out.println("折返跑"); //  循环体语句
        }
    }
}

2.3for循环练习

/*
    需求:在控制台输出1-5和5-1的数据
 */
public class Demo02For练习 {
    public static void main(String[] args) {
        for (int i = 1;i<=5;i++) {
            System.out.println(i);
        }
        System.out.println("--------------");
        //输出5--1
        for (int i = 5;i>=1;i--) {
            System.out.println(i);
        }
    }
}

2.3 for循环 求1–5之间的数据和

/*
    需求:求1-5之间的数据和,并把求和结果在控制台输出

    分析:
        拿到1--5之间整数
        累加
        把累加和存放到一个变量中
 */
public class Demo03求和练习 {
    public static void main(String[] args) {

        //定义变量 用来接收累加和
        int sum = 0;

        //循环获取1--5之间数字
        for (int i=1;i<=5;i++){
//            System.out.println(i);
            sum = sum + i;
        }
        System.out.println(sum);
    }
}

2.4求和 1–100之间数据和

/*
    需求:求1-100之间的数据和,并把求和结果在控制台输出

    分析:
        取出1--100之间所有数字  for循环
        累加求和
 */
public class Demo04求和练习 {
    public static void main(String[] args) {
        //定义求和变量
        int sum = 0;
        //取出1--100之间所有的数据
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        //打印最终求和
        System.out.println(sum);

    }
}

2.5 求1–100之间所有 奇数和, 所有偶数和

/*
    需求:求1-100之间的数据和,并把求和结果在控制台输出

    分析:
        1.取出1--100之间所有数字  for循环
        2.求奇数和
            2.1定义求和变量
            2.2判断是否为奇数,若是就累加
            2.3打印奇数和
        3.求偶数和
            3.1定义求和变量
            3.2判断是否为偶数,若是就累加
            3.3打印偶数和

 */
public class Demo05求和练习 {
    public static void main(String[] args) {
        //求奇数和
        //定义求和变量
        int jiSum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i%2!=0){
                jiSum+=i;
            }
        }
        System.out.println("1--100之间所有奇数和:"+jiSum);

        //求偶数和
        //定义求和变量
        int ouSum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i%2==0){
                ouSum+=i;
            }
        }
        System.out.println("1--100之间所有偶数和:"+ouSum);
    }
}

2.6水仙花数

/*
    水仙花数:
        1.首先是一个三位数 100-999
        2.各个位上数字的立方和 等于数字本身
    分析:
        1.先获取每一个三位数
        2.求每个三位数各个位上数字
        3.求每个三位数各个位上数字的立方和
        4.判断立方和是否和数字本身相等 ,如果相等就是水仙花数
        5.打印水仙花数到控制台
 */
public class Demo06水仙花 {
    public static void main(String[] args) {
        //1.先获取每一个三位数
        for (int i = 100; i <= 999; i++) {
//            System.out.println(i);
            //2.求每个三位数各个位上数字
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/100%10;
            //3.求每个三位数各个位上数字的立方和
            //4.判断立方和是否和数字本身相等 ,如果相等就是水仙花数
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
                System.out.println(i);
            }
        }
    }
}

2.7 统计水仙花数的个数

/*
    水仙花数:
        1.首先是一个三位数 100-999
        2.各个位上数字的立方和 等于数字本身
    分析:
        1.先获取每一个三位数
        2.求每个三位数各个位上数字
        3.求每个三位数各个位上数字的立方和
        4.判断立方和是否和数字本身相等 ,如果相等就是水仙花数 ,统计水仙花数
        5.打印水仙花数到控制台 和 统计的个数打印到控制台
 */
public class Demo07统计水仙花数的个数 {

    public static void main(String[] args) {
        //定义变量 用来统计 水仙花数
        int count = 0;
        //求水仙花数
        for (int i = 100; i < 999; i++) {
            //求各个位上数字
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/100%10;
            //判断是否是水仙花数
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
                System.out.println(i);
                count++;
            }
        }
        System.out.println("水仙花数的个数:"+count);
    }
}

2.8输出水仙花数两个一行

/*
    水仙花数:
        1.首先是一个三位数 100-999
        2.各个位上数字的立方和 等于数字本身
    换行:
        println(); 底层默认有个换行符
        print();   默认没有换行
    分析:
        1.先获取每一个三位数
        2.求每个三位数各个位上数字
        3.求每个三位数各个位上数字的立方和
        4.判断立方和是否和数字本身相等 ,如果相等就是水仙花数 ,统计水仙花数
        5.打印水仙花数到控制台 和 统计的个数打印到控制台
 */
public class Demo08输出水仙花数两个一行 {
    public static void main(String[] args) {

        /*int count = 0;
        for (int i = 1; i <= 10; i++) {
            System.out.print("你好");
            count++;
            if (count % 5 == 0) {
                System.out.println();
            }
        }*/
        //定义变量 用来统计 水仙花数
        int count = 0;
        //求水仙花数
        for (int i = 100; i < 999; i++) {
            //求各个位上数字
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/100%10;
            //判断是否是水仙花数
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
                System.out.print(i+" ");
                //统计水仙花数的个数
                count++;
                //立刻和2取模 若能被2整除 就打印换行
                if (count%2==0){
                    System.out.println();
                }
            }
        }
        System.out.println("水仙花数的个数:"+count);

    }
}

2.9for循环嵌套

/*

    嵌套for循环:
        1.外层for循环控制行数,内侧for循环控制列数
        2.外层for循环跑一次,内层for循环跑一圈
        
 4、有一个输出语句System.out.print("@")。使用这个语句,
 在控制台打印出一个四行五列的长方形,效果如下:

@@@@@
@@@@@
@@@@@
@@@@@



 */
public class Demo09For循环嵌套 {
    public static void main(String[] args) {

        for (int j = 0; j < 4; j++) { //外层for循环控制行数
            for (int i = 0; i < 5; i++) { //内侧for循环控制列数
                System.out.print("@");
            }
            System.out.println();
        }

        //2.外层for循环跑一次,内层for循环跑一圈
        for (int j = 1; j <= 3; j++) { //外层for循环控制行数
            for (int i = 1; i <= 4; i++) { //内侧for循环控制列数
                System.out.print(j+"@"+i + "  ");
            }
            System.out.println();
        }

    }
}

2.10 九九乘法表

public class Demo10九九乘法表 {
    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();
        }
    }
}

while循环

/*
    while 循环
        1.格式:
            初始化语句
            while(条件判断语句){
                循环体语句;
                条件控制语句;
            }
         2.执行流程
            1.初始化语句
            2.条件判断语句 ==>false 结束循环
                        ==>true ==> 循环体语句 ==>条件控制语句 ==>条件判断语句

 */

public class Demo01While入门 {
    public static void main(String[] args) {
        //打印1--5
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
        System.out.println("----------");
        int i = 1;
        while (i <= 5){
            System.out.println(i);
            i++;
        }
        System.out.println("-----------");
        for (int j = 5; j > 0; j--) {
            System.out.println(j);
        }
        System.out.println("-----------");
        int j = 5;
        while (j > 0){
            System.out.println(j);
            j--;
        }
    }
}

3.1计算1–100之间的数据和

public class Demo02While求和 {
    public static void main(String[] args) {
        //使用for循环 求1--100之间数据和
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum+=i;
        }
        System.out.println(sum);

        //使用while循环 求1--100之间数据和
        //定义求和变量
        int sum2 = 0;

        int i = 1;
        while (i<=100){
            sum2+=i;//满足条件累加
            i++;
        }
        System.out.println(sum2);
    }
}

do-while循环

/*
    do-while
        格式:
            初始化语句
            do{
                循环体语句;
                条件控制语句;
            }while(条件判断语句);

        执行流程:
            1.初始化语句
            2.循环体语句
            3.循环体语句
            4.条件判断语句 ==> false 结束循环
                        ==> 循环体语句 ==> 循环体语句 ==> 条件判断语句
 */
public class Demo01DoWhile入门 {
    public static void main(String[] args) {
        //打印1--5到控制台
        //for循环实现
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
        System.out.println("--------");
        //while循环实现
        int i = 1;
        while (i<=5){
            System.out.println(i);
            i++;
        }
        System.out.println("--------");
        //do-while 实现
        int j = 1;
        do {
            System.out.println(j);
            j++;
        }while (j<=5);
    }
}

4.1计算1–100之间的数据和 do-while

/*
    计算1--100之间所有数据和 do-while实现

    分析:
        1.定义求和变量
        2.使用do-while循环 取出满足条件数字
        3.累加
        4.打印结果
 */
public class Demo02DoWhile求和 {
    public static void main(String[] args) {
        //1.定义求和变量
        int sum = 0;

        //2.使用do-while循环 取出满足条件数字
        int i = 1;
        do {
            //3.累加
            sum+=i;
            i++;
        }while (i<=100);
        //4.打印结果
        System.out.println(sum);

    }
}

三种循环的区别

  1.for循环和while循环 是先判断 后执行,do-while循环 先执行一次在判断
  2.for循环的初始化变量 只能在for循环中使用,while循环和dowhile循环在循环结束后,初始化变量还能使用
  3.推荐使用 for循环

死循环格式

定义:
  	循环一直执行,停不下来
格式:
  	for(;;){}
	while(true){}   //推荐使用while(true){}
	do{}while(true);
public class Demo01 {
    public static void main(String[] args) {
        //for循环的死循环
        /*for (;;){
            System.out.println("停不下来");
        }*/
        //while循环的死循环
        /*while(true){
            System.out.println("停不下来");
        }*/
        //do-while循环的死循环格式
        do {
            System.out.println("停不下来");
        }while (true);
    }
}

跳转控制语句

/*
    continue:
        在循环中的作用是跳过本次循环继续下一次
 */
public class Demo01Continue语句 {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 3){
                continue;
            }
            System.out.println(i);
        }
    }
}
/*
    break
        终止离我最近的循环
        
   如果想终止外面一层的循环,就要使用循环别名,break别名
 */
public class Demo02Break语句 {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 3){
                break;
            }
            System.out.println(i);
        }

       wc: for (int i = 0; i < 3; i++) {
           nc: for (int j = 0; j < 4; j++) {
                if (j==2){
                    break wc;
                }
                System.out.println(i + "==> " + j);
            }
        }
    }
}

随机数

import java.util.Random;

/*
    Random
        1.导包
            import java.util.Random
        2.创建对象
            Random r = new Random();
        3.生成随机数
            int num = r.nextInt(正整数); //0 到正整数之间数据 包含0不含正整数 [0,正整数)
 */
public class Demo01随机数 {
    public static void main(String[] args) {
        //创建对象
        Random r = new Random();
        //生成随机数
        for (int i = 0; i < 10; i++) {
            int num = r.nextInt(10); //生成0--9之间的随机数
            System.out.println(num);
        }
    }
}
8.1生成22–88之间的随机数
import java.util.Random;

public class Demo02随机数2288 {
    public static void main(String[] args) {
        //创建对象
        Random r = new Random();
        //生成随机数
        //生区间随机数 r.nextInt(最大值 - 最小值 + 1)+最小值
        int num = r.nextInt(67)+22;
        System.out.println(num);
        // 33 -- 88
        int num2 = r.nextInt(56)+33;
        System.out.println(num2);
    }
}
8.2猜数字
import java.util.Random;
import java.util.Scanner;

/*
    猜数字小游戏
        分析:
            1.生成一个随机数 1--100
            2.猜数字
                2.1键盘录入
                2.2死循环
                2.3猜对结束循环
 */
public class Demo03猜数字小游戏 {
    public static void main(String[] args) {
        //生成一个 1-- 100之间随机数
        Random random = new Random();
        //生成随机数
        int num = random.nextInt(100) + 1;

        //System.out.println(num);

        //键盘录入
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要猜的数字:");
            int guessNum = scanner.nextInt();

            //比较
            if (guessNum > num) {
                System.out.println("您猜的数字大了!!!");
            } else if (guessNum < num) {
                System.out.println("您猜的数字小了!!!");
            } else if (guessNum == num) {
                System.out.println("恭喜你猜中了!!!");
                break;
            }
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值