Java基础(day05)(变量交换+控制结构)

目录

变量交换

Scanner类

作用:

如何使用:

案例 : 

控制结构

        概念 : 

        分类

        分支结构

                if判断语句

switch  case选择语句

        格式 : 

        案例  :    简易计算器  +   -   *   /

注意:

案例  :   模拟客服小程序


变量交换

      //交换变量值
        int a = 3;
        int b = 5;
        int c;

        //方法一  : 好理解,额外多占用空间
/*      c=a;
        a=b;
        b=c;
*/

/*
        c=b;
        b=a;
        a=c;
*/
        
        //方法二  计算效率低一点  没有额外占用空间
/*
        a = a+b;//a  =8 b = 5
        b = a-b;//a = 8 b = 3
        a = a-b;//a = 5 b = 3
*/
        
        //方法三  计算效率最高的   没有额外占用空间
/*        //异或
        //3^5^5=3
        //3^5^3=5
        a = a^b;  //a = 3^5  b = 5
        b = a^b;  //a = 3^5  b = 3
        a = a^b;  //a=5  b=3
*/
        
        
        System.out.println("b值为");
        System.out.println(b);
        System.out.println("a值为");
        System.out.println(a);

Scanner类

作用:

        获取用户键盘输入的数据

如何使用:

        1*导入Scanner所在包

               import java.util.Scanner;

               位置:在类定义的上边

        2*创建Scanner类的对象

Scanner scan = new Scanner(System.in);

         3*  调用sc的方法来获取数据

                nextlnt()---获取用户输入的整数

                nextDouble()---获取用户输入的浮点数

                next()----获取用户输入的字符串

                调用方法的格式

                        sc.nextInt();----获取用户输入的一个整数

                       int num = sc.nextInt();

                        double num1 = sc.nextDouble();

                        String  str  =  sc.next;

        4*关闭Scanner

                sc.close();----关闭Scanner

案例 : 

         1*获取一个整数,并输出他的奇偶性

        Scanner scan = new Scanner(System.in);
        System.out.println("输入d");
        int d  =  scan.nextInt();
        System.out.println(d%2==0? "偶数":"奇数");
        scan.close();

        2*获取两个整数,输出最大值

        Scanner sc = new Scanner(System.in);
        System.out.println("输入第一个要比的数字大小");
        int a = sc.nextInt();
        System.out.println("输入第二个要比的数字大小");
        int b = sc.nextInt();
        System.out.println("最大值为");
        System.out.println(Math.max(a, b));
        sc.close();

                结果为   :  

控制结构

        概念 : 

                控制程序执行

        分类

                顺序结构

                        从上到下  从左到右

                分支结构

                循环结构

        分支结构

                if判断语句

                        格式1

                                if(判断条件){

                                        当判断条件成立时要执行的代码块;

                                        }else{

                                        当判断条件不成立时要执行的代码

                                        }

                        判断类型的值必须为boolean类型

                        案例 : 变量num是否大于0,如果大于0,则输出num值

        Scanner sc = new Scanner(System.in);
        System.out.println("输入值");
        int a = sc.nextInt();

        if (a>0){
            System.out.println(a);
            if (a%2==0){
                System.out.println("输入的值为偶数");
            }else {
                System.out.println("输入的值为奇数");
            }
        }else{
            System.out.println("数值小于0,不输出");
        }

                        案例2: 判断a  b  变量的大小  输出最大值

        Scanner sc = new Scanner(System.in);
        System.out.println("输入第一个值");
        int a = sc.nextInt();
        System.out.println("输入第二个值");
        int b = sc.nextInt();
        if (a>b){
            System.out.println("最大值为第一个值a:"+a);
        }else {
            System.out.println("最大值为第二个值b:"+b);
        }

             

                                        if(判断条件){

                                        当判断条件成立时要执行的代码块;

                                        }else if(判断条件2){

                                        当判断条件不成立时且判断条件2成立时要执行的代码

                                        }...{

                                        }else{

                                                前面判断条件都不成立时,执行里面代码

                                        }

                        案例: 按成绩划分优秀

        Scanner sc = new Scanner(System.in);
        System.out.println("输入成绩");
        int a = sc.nextInt();
        if (a>100|a<0){
            System.out.println("请输入正确的分数");
        }else if (a>=90){
            System.out.println("优秀");
        }else if (a>=80&&a<90){
            System.out.println("良好");
        }else if (a>=70&&a<80){
            System.out.println("中等");
        }else if (a>=60&&a<70){
            System.out.println("及格");
        }else if(a<60){
            System.out.println("不及格");
        }
        sc.close();

                案例3

                输入月份,获取当前月份对应的季节

        Scanner sc = new Scanner(System.in);
        System.out.println("输入月份");
        int a = sc.nextInt();
        if(a<0||a>12){
            System.out.println("请输入正确的月份");
        }
        else if (a>=3&&a<=5){
            System.out.println("春天");
        }else if (a>=6&&a<=8){
            System.out.println("夏天");
        }else if (a>=9&&a<=11){
            System.out.println("秋天");
        }else{
            System.out.println("冬天");
        }

                if嵌套

                        if(){

                                if(){

                                }

                        }

        案例:  月份,同上

 Scanner sc = new Scanner(System.in);
        System.out.println("输入月份(1-12)");
        int a = sc.nextInt();
        
        sc.close();
        if (a>=1&&a<=12) {
            if (a >= 3 && a <= 5) {
                System.out.println("春天");
            } else if (a >= 6 && a <= 8) {
                System.out.println("夏天");
            } else if (a >= 9 && a <= 11) {
                System.out.println("秋天");
            } else {
                System.out.println("冬天");
                }
        } else{
            System.out.println("请输入正确的月份值");
        }  

       注意  :   

                1*如果代码块的内容只有一行  可以省略{}

                2*变量的作用域问题

                        变量定义开始到所属的{}的结束

                        在同一个定义域内变量不能重名,在不同定义域则可以重名

switch  case选择语句

       switch  case  break  都是关键字

        格式 : 

                switch(表达式或值){

                case  值1:

                        当值和值1匹配时,要执行的代码块

                case  值2 : 

                        当值和值2匹配时,要执行的代码块

                ...

                default :

                        值和所有的值都匹配不上,执行此代码

                }

        案例  :    简易计算器  +   -   *   /

                1*获取用户输入的两个运算值

                2*获取用户输入的算术运算符

                3*输出计算结果

注意:

        1*case穿透  当值和某个case匹配后  不止执行当前case的代码块  还会将之后所有case以及default代码块都执行一遍

        解决方法 : 

                break;----break语句

                作用,一旦程序执行break语句,则switch case语句结束

        2*switch case  只支持int  byte  short char   String  枚举

        3*switch case 和if区别

                1*if语句更常用  使用场景更广泛

                2*if更适用范围以及更加复杂场景的判断

                3*switch case 适用于选项有限  且需要一一匹配的场景下

案例  :   模拟客服小程序

        10086

                欢迎致电10086

                1-查询花费余额

                2-查询套餐内剩余流量

                3-查询积分

                0-人工客服

                请输入要办理的业务码

                将用户输入的业务码保存起来

                switch case 对业务码进行匹配

                         

                

        Scanner sc = new Scanner(System.in);
        System.out.println("欢迎致电10086");
        System.out.println();
        System.out.println("按1查询花费余额");
        System.out.println("按2查询套餐内剩余流量");
        System.out.println("按3查询积分");
        System.out.println("按0转接人工客服");
        System.out.println();

        System.out.println("请输入要办理的业务码");
        int a = sc.nextInt();

        sc.close();
        switch (a){
            case 1:
                System.out.println("查询花费余额");
                System.out.println("当前余额为123");
                break;
            case 2:
                System.out.println("查询套餐内剩余流量");
                System.out.println("当前剩余流量为123456MB");
                break;
            case 3:
                System.out.println("查询积分");
                System.out.println("当前积分为123456789分");
                break;
            case 0:
                System.out.println("转接人工客服");
                System.out.println("转接人工客服成功,请问您有什么问题");
                break;
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小乔同学Online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值