【Java学习】005_键盘录入Scanner&条件判断if/switch&局部代码块

【Java学习】005_键盘录入Scanner&条件判断if/switch&局部代码块

一、键盘录入

键盘录入实现步骤:

第一步:导包

import java.util.Scanner;
注意:写在package的下面,写在class的上面

第二步:创建对象

Scanner sc = new Scanner(System.in);

第三步:调用方法

int i = sc.nextInt();

package com;

import java.util.Scanner;

public class demo11 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);  // 创建对象

        System.out.println("输入一个数字:");
        int i = sc.nextInt();  // 调用方法,定义变量结果数据为数字

        System.out.println("输入一个字符串:");
        String str = sc.next();  // 调用方法,定义变量结果数据为字符串

        System.out.println("输入一个short:");
        Short ss = sc.nextShort();  // 调用方法,定义变量结果数据为short

        System.out.println("输入一个double:");
        Double dd = sc.nextDouble();  // 调用方法,定义变量结果数据为double

        System.out.println("输入一个float:");
        Float ff = sc.nextFloat();  // 调用方法,定义变量结果数据为float

        System.out.println(i + "……" + str + "……" + ss + "……" + dd + "……" + ff);
    }
}

输出结果:
    输入一个数字:
    1
    输入一个字符串:
    aa
    输入一个short:
    1
    输入一个double:
    2
    输入一个float:
    3
    1……aa……1……2.0……3.0

二、条件判断

if语句

格式一:if(){}

if(条件表达式){

语句体;

}

if(条件表达式) 一条有效语句;

执行流程:

如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false
如果是true,就会进入到if语句中,执行里面的语句体内容
如果是false,就不会进入到if语句中,就不会执行里面的语句体内容

public class demo12 {
    public static void main(String[] args) {
        int i = 1;
        int j = 2;
        if (i < j){
            System.out.println(i + " < " + j);  // 1 < 2
        }

        boolean b = true;

        if (b == false){
            System.out.println(b + "……B1");  // 不满足条件,不执行
        }

        if (b = false){
            System.out.println(b + "……B2");  // 修改b值为false,不满足条件,不执行
        }

        System.out.println(b + "……B3");  // false……B3

        boolean c = false;
        if (c){
            System.out.println(c + "……C1");  // 修改b值为false,不满足条件,不执行
        }

        System.out.println(c + "……C2");  // false……C2

        if(3 > 2) System.out.println("3 > 2");  // 3 > 2    // 当if语句中只有一条有效语句的时候,花括号是可以省略不写的

        if(3 < 2)
            System.out.println("1111");  // 不满足条件,不执行
            System.out.println("2222");  // 2222  // 同上面的if语句没有关系

        if(3 < 2)
            int d = 1;  // 编译报错:【java: 此处不允许使用变量声明】,此处相当于两条有效语句:int d; d = 1;

    }
}

格式二:if(){}else{}

if(条件表达式){

语句体;

}else{

语句体;

}

执行流程:

如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false
如果是true,就会进入到if语句中,执行里面的语句体内容
如果是false,就不会进入到if语句中,会进入到else中,执行里面的语句体内容

public class demo13 {
    public static void main(String[] args) {
        int i = 1;
        int j = 2;

        if (i > j){
            System.out.println("i = " + i + " 最大");  // 不满足条件,不执行语句
        }else{
            System.out.println("j = " + j + " 最大");  // j = 2 最大  // 满足条件,执行语句
        }
    }
}

格式三:if(){}else if(){}else{}

if(条件表达式){

语句体;

}else if(条件表达式){

语句体;

} ……

else{

语句体;

}

执行流程:

如果程序执行到if语句的时候,会去看条件表达式的结果是true还是false
如果是true,就会进入到if语句中,执行里面的语句体内容
如果是false,就会继续往下走,看else if的条件表达是的结果是true还是false
……

package com;

public class demo14 {
    public static void main(String[] args) {
        int i = 5;
        if (i > 7){
            System.out.println("i = " + i + " , i > 7");
        } else if (i > 6) {
            System.out.println("i = " + i + " , i > 6");
        } else if (i > 5) {
            System.out.println("i = " + i + " , i > 5");
        } else if (i > 4) {
            System.out.println("i = " + i + " , i > 4");  // i = 5 , i > 4
        } else {
            System.out.println("i = " + i + " , i > 3");  // 在上一步,if判断已经结束,不会执行该语句
        }
    }
}

注意:else可以省略不写(不建议)

package com;

public class demo15 {
    public static void main(String[] args) {
        int i = 5;
        if (i > 7){
            System.out.println("i = " + i + " , i > 7");
        } else if (i > 6) {
            System.out.println("i = " + i + " , i > 6");
        } else if (i > 5) {
            System.out.println("i = " + i + " , i > 5");
        } else if (i > 4) {
            System.out.println("i = " + i + " , i > 4");  // i = 5 , i > 4
        }
    }
}


public class demo16 {
    public static void main(String[] args) {
        int i = 5;
        int a;
        if (i > 7){
            a = 1;
        } else if (i > 6) {
            a = 2;
        } else if (i > 5) {
            a = 3;
        } else if (i > 4) {
            a = 4;
        }else{
            a = 5;
        }
        System.out.println(a);  // 4
    }
}


public class demo17 {
    public static void main(String[] args) {
        int i = 5;
        int a;
        if (i > 7){
            a = 1;
        } else if (i > 6) {
            a = 2;
        } else if (i > 5) {
            a = 3;
        } else if (i > 4) {
            a = 4;
        }
        System.out.println(a);  // 编译报错:【java: 可能尚未初始化变量a】
    }
}

switch语句

格式:

switch(表达式){

case 取值1:
    语句体;
    break;

case 取值2:
    语句体;
    break;

case 取值3:
case 取值4:
    语句体;
    break;

……

default:
    语句体;
    break;

}

执行流程:

  • 当程序执行到switch的时候,会进入到switch,会找第一个case进行匹配,如果匹配成功,就进入到case中执行里面的语句体内容和break;如果没有匹配成功,会继续往下走,找第二个case继续匹配……

  • 如上,满足case取值3或case取值4时,会执行相同的语句体和break

  • 如果所有的case都不匹配,最后会执行default中的语句体和break

public class demo18 {
    public static void main(String[] args) {
        int i = 3;
        switch (i){
            case 1:
                System.out.println("i1 = " + i);
                break;
            case 2:
                System.out.println("i2 = " + i);
                break;
            case 3:
                System.out.println("i3 = " + i);  // i3 = 3
                break;
            case 4:
                System.out.println("i4 = " + i);
                break;
            default:
                System.out.println("i5 = " + i);
                break;
        }
    }
}

注意:

  1. switch中的表达式的数据类型可以为:

    byte,short,int,char,string,枚举
  2. default可以放在任意一行,但是不管放在哪一行,都会先找第一个case去匹配,如果所有case都不匹配,才会执行default

     public class demo19 {
        public static void main(String[] args) {
            int i = 5;
            switch (i){
                case 1:
                    System.out.println("i1 = " + i);
                    break;
                case 2:
                    System.out.println("i2 = " + i);
                    break;
                default:
                    System.out.println("i5 = " + i); // i5 = 5
                    break;
                case 3:
                    System.out.println("i3 = " + i); 
                    break;
                case 4:
                    System.out.println("i4 = " + i);
                    break;
    
            }
        }
    }
  1. default可以省略不写(不建议)

    不写default,即默认为:
            default:
                break;
  2. break可以省略不写(不建议)

     public class demo20 {
        public static void main(String[] args) {
            int i = 3;
            switch (i){
                case 1:
                    System.out.println("i1 = " + i);
                    break;
                case 2:
                    System.out.println("i2 = " + i);
                case 3:
                    System.out.println("i3 = " + i);  // i3 = 3  // 满足条件,执行该语句
                case 4:
                    System.out.println("i4 = " + i);  // i4 = 3  // 上个case满足条件后未执行break,switch语句未结束,执行case4
                default:
                    System.out.println("i5 = " + i);  // i5 = 3  // switch语句未结束,执行default
                    break;
            }
        }
    }
    1. switch结束标记:

      1) break;
      2) 遇到结尾 }

何时使用if和switch

如果是判断某个区间范围,推荐使用if
如果是判断某几个数据,推荐使用switch

三、局部代码块

代码块

由一对花括号括起来的,就称为代码块

{
    代码;
}

局部代码块

写在main(程序执行入口)里面的代码块,就称为局部代码块

public class demo21 {
    public static void main(String[] args) {
        int i;

        // 局部代码块
        {
            i = 1;
            int j = 2;
        }

        // 局部代码块
        {
            int j = 3;
        }

        System.out.println(i);  // 1
        // System.out.println(j);  // 3  // 变异报错,找不到变量j
    }
}

局部代码块作用:

能够让变量更早的在内存中消失,节省内存空间

点击查看

本文标题:【Java学习】005_键盘录入Scanner&条件判断if/switch&局部代码块

文章作者:Mango

发布时间:2023年08月20日 - 14:57:55

最后更新:2023年08月22日 - 14:59:03

原始链接:https://mango185.github.io/post/a2cf3827.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------