JAVA基础知识点04-随机数、流程控制语句、单分支、双分支、多分支、switch语句

键盘输入
    接受字符串的功能:
        next()
            从有效字符开始接收,非空格字符,不能包含空格,一旦遇到空格就不再接收,但是 功能还没结束,enter才能结束功能
        nextLine()
            接收用户输入的一整行的内容,包含空格
import java.util.Scanner;
public class ScannerDemo07 {
    public static void main(String[] args) {
        //1.导包
        //2.创建Scanner类型的引用
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入用户名:");
        //3.根据引用数据功能
        String str = sc.next();
        System.out.println(str);

        //处理遗留enter
        sc.nextLine();

        System.out.println("下面测试nextLine()");
        String s = sc.nextLine();
        System.out.println(s);

        sc.close();

    }
}

 运行截图:

Random 类
产生随机数
    使用步骤:
        1.导包
        2.创建Random类型的引用
        3.使用功能
            nextInt() 随机 产生int类型的整数
            nextInt(整数n) 随机int类型的整数,范围[0,n)
            nextDouble() 随机小数   [0.0,1.0)

       产生随机整数的公式:
        [0,n)  ran.nextInt(n)
        [0,n]  ran.nextInt(n+1)
        [min,max)  ran.nextInt(max-min)+min  =>[0,max-min)+min =>[min,max)
        [min,max]  ran.nextInt(max-min+1)+min
import java.util.Random;
import java.util.Scanner;

public class RandomDemo08 {
    public static void main(String[] args) {
        //1.创建Random类型的引用
        Random ran = new Random();
        //2.使用功能
        System.out.println(ran.nextInt());
        System.out.println(ran.nextInt());

        //产生[0,4]之间的随机整数 ->[0,5)
        System.out.println(ran.nextInt(5));

        //[2,5) ran.nextInt(max-min)+min
        System.out.println(ran.nextInt(5-2)+2 );
        System.out.println(ran.nextInt(5-2)+2 );

        System.out.println("-----------------------------");
        //[2,5]
        System.out.println(ran.nextInt(5-2+1)+2);
        System.out.println(ran.nextInt(5-2+1)+2);

        System.out.println("-----------------------------");
        //随机小数
        System.out.println(ran.nextDouble());
        System.out.println(ran.nextDouble());

        System.out.println("-----------------------------");

        //练习 : 随机生成[1,100] 之间的随机整数
        //ran.nextInt(max-min+1)+min

        System.out.println(ran.nextInt(100-1+1)+1);
        System.out.println(ran.nextInt(100-1+1)+1);

        System.out.println("-----------------------------");

        //练习 : 随机生成[20,30] 之间的随机整数
        //ran.nextInt(max-min+1)+min
        System.out.println(ran.nextInt(30-20+1)+20);

    }
}

 

流程控制语句:
    顺序结构 : 从上到下  从左到右
    选择结构 : 满足条件执行某些代码
    循环结构 : 重复执行的代码

    选择结构:
        if...
        switch

    单选择| 单分支:
        满足条件就执行指定代码,不满足条件就不执行
        if(表达式){
            满足条件执行的代码;
        }
        执行流程:
            1.计算表达式,得到一个boolean类型的结果
            2.如果结果为true,执行{}中的 与具体
            3.如果结果为false,不执行{}中的语句体

    双选|双分支:
        if(条件表达式){
            满足条件执行的语句体1;
        }else{
            不满足条件执行的语句体2;
        }
        执行流程:
            1.计算表达式,得到一个boolean类型的结果
            2.如果结果为true,执行语句体1
            3.如果结果为false,执行语句体2

    多选择|多分支:
        if(条件表达式1){
            语句体1;
        }else if(条件2){
            语句体2;
        }else if(条件3){
            语句体3;
        }....
        else{
            以上条件都不满足,执行语句体n;
        }
        执行流程:
            1.计算表达式1,得到boolean结果
            2.如果结果为true,执行语句体1,如果结果为false,计算条件2
            3如果结果为true,执行语句体2,如果结果为false,计算条件3
            ....
            4.如果以上所有的条件都不满足 ,执行else中的语句体n

    注意:
        {}中的语句体只有一句,前后 的{}可以省略
        else可以根据需求自定义添加

    条件运算符与if语句的区别:
        都可以做添加判断
        条件运算符肯定会得到一个结果,但是if不一定
        条件运算符值1,值2都是确定的某一个值,if的{}可以为多个语句体
        如果简单的建议使用条件运算符,结构简单,如果复杂的建议使用if条件判断,结构清晰

 

import java.util.Random;
import java.util.Scanner;


public class IfDemo09 {
    public static void main(String[] args) {
        int a = -5;

        //单选
        //判断a是否>0
        if(a>0) {
            System.out.println("a>0");
        }
        System.out.println("哈哈哈,测试是否被if语句控制");

        //双选
        String username = "张三";
        if(username == "张三丰"){
            System.out.println("用户名输入正确");
        }else{
            System.out.println("用户名输入错误");
        }

        //多选
        if(a>0)
            System.out.println("a>0");
        else if(a==0)
            System.out.println("a=0");
        else if(a<0)
            System.out.println("a<0");


        //练习:
        // 一.判断一个 是是否为偶数
        // 二.判断3个数中最大的值,3个数为随机生成[50~100]整数
        Random ran = new Random();
        int x = ran.nextInt(100-50+1)+50;
        int y = ran.nextInt(100-50+1)+50;
        int z = ran.nextInt(100-50+1)+50;

        System.out.println("x="+x+",y="+y+",z="+z);
        if(x>y  &&  x>z){
            System.out.println("x最大");
        }else if(y>z){
            System.out.println("y最大");
        }else{
            System.out.println("z最大");
        }

        /*
			三.键盘输入小明的一门成绩,显示该成绩对应的奖励
				100			爸爸给你买个iphone12promax
				[90,100)	爸爸给你买个iphone8
				[60,90)		别灰心,爸爸给你买各种学习资料
				(0,60)		买学习资料,上补习班,各种爱的教育,如果下次还不及格,小心皮鞭沾凉水
				0			我看你是快了!!!!
		*/
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的考试成绩:");
        int score = sc.nextInt();
        if(score==100){
            System.out.println("爸爸给你买个iphone12proMax");
        }else if(score>=90 && score<100){
            System.out.println("爸爸给你买个iphone12pro");
        }else if(score>=60 && score<90){
            System.out.println("别灰心,爸爸给你买各种学习资料");
        }else if(score>0 && score<60){
            System.out.println("买学习资料,上补习班,各种爱的教育,如果下次还不及格,小心皮鞭沾凉水");
        }else if(score==0){
            System.out.println("我看你是快了!!!!");
        }else{
            System.out.println("此分数不符合规定范围");
        }

        /*
			四.根据月份,输出对应的季节
				3~5  春天
				6~8  夏天
				9~11 秋天
				12~2 冬天
		 */
        System.out.println("请输入您要查询的月份:");
        int month = sc.nextInt();

        if(month>=3 && month<=5){
            System.out.println("春天");
        }else if(month>=6 && month<=8){
            System.out.println("夏天");
        }else if(month>=9 && month<=12){
            System.out.println("秋天");
        }else if(month ==12 || month==1 || month==2){
            System.out.println("冬季");
        }else{
            System.out.println("不满足条件");
        }
    }
}

运行截图:

switch 语句
    定值判断

语法:
    switch(表达式){
        case 值1:
            语句体1;
            break;
        case 值2:
            语句体2;
            break;
        ...
        default:
            语句体n;
            break;
    }
    表达式: 一般一个变量,可以为一个表达式
        结果的数据类型要求: byte,short,int,char,枚举(jdk1.5新增),String(jdk1.7)
        case: case的值与表达式的结果进行判断是否相等
        break: 结果当前switch语句,防止case穿透
        default: 相当于if语句的else
        default为值可以任意改变

执行流程:
    1.计算表达式()
    2.从上到下使用case后的值与表达式的结果进行判断,是否 相等,相等就执行对应的语句体,不相等继续向下判断
    3.如果执行了对应的语句体之后,break就结束|终止switch
    4.如果以上的所有的case后的值都不相等,执行default后的内容

 注意:
    case穿透: 如果一旦满足 条件执行对应的 语句体了,没有break,会发生case穿透,无论下面的case是否满足条件,都会执行语句体,知道遇到下一个break或者switch语句的结束

    switch与if的区别:
       switch 定值判断
       if 定值判断| 区间判断

 

import java.util.Scanner;

public class SwtichDemo10 {
    public static void main(String[] args) {
        String flag  = "绿灯";
        switch (flag){
            default:
                System.out.println("输入错误");
               break;
            case "红灯":
                System.out.println("红灯停...");
                break;
            case "绿灯":
                System.out.println("绿灯行...");
                break;
            case "黄灯":
                System.out.println("黄灯等一等...");
                break;

        }

        //case穿透
        /*switch (flag){
            case "红灯":
                System.out.println("红灯停...");
            case "绿灯":
                System.out.println("绿灯行...");
            case "黄灯":
                System.out.println("黄灯等一等...");
            default:
                System.out.println("输入错误");
        }*/

        //测试()中数据的类型
        int i = 10;
        switch((byte)(i*10)){
            case '1':
                System.out.println("1");
                break;
            case 10:
                System.out.println("10");
                break;
            case 100:
                System.out.println("100");
                break;
        }

        }

    }
}

运行截图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值