【JavaSE】06-顺序结构,选择结构[if,switch]

本文详细介绍了Java中Scanner类的基础和进阶用法,包括如何读取不同类型的数据以及处理用户输入。此外,讲解了顺序结构作为最基本的程序执行流程,并探讨了选择结构,如if单选择、if双选择、if多选择和嵌套if结构,以及switch多选择结构的使用。文章还强调了if结构的注意事项和switch语句的执行特点。
摘要由CSDN通过智能技术生成

①.Scanner的使用

Scanner基础知识

什么是Scanner
是JDK5的新特性,在java.util.Scanner中,为用户提供一种输入的交互的方法。
基本语法
Scanner scanner = new Scanner(System.in);
基本用法
通过Scanner类中的next()与nextLine()方法获取输入的字符串,在读取的时候开发者需要使用hasNext()与hasNextLine()判断是否有输入的数据。
使用注意:凡属于IO流的类不关闭就会一直占用资源,所以用完就要关掉。
关闭方法:scanner.close();

.next()与.nextLine()的区别:

  • .next():
    一定要读取到有效字符之后才结束输入;
    对输入的有效字符之前的空白,next()方法会自动将其去掉;
    输入有效字符之后,空白将作为分隔符或者结束符;
    next()不能获取带有空格的字符串。
  • nextLine():
    以Enter作为结束符,返回值是Enter之前输入的所有字符;
    nextLine()方法可以获取空白。
			Scanner scanner = new Scanner(System.in);
			String str = scanner.next();
            //输出 hello  .next()方法遇到空格字符将会终止
            System.out.println("输入内容为:" + str);

			String str2 = scanner.nextLine();
            //输出 hello world!  .nextLine()方法遇到回车才会中止
            System.out.println("输入内容为:" + str2);
            scanner.close();

Scanner进阶知识

目的:运用Scanner获取用户输入的不同数据类型的数据。
用法
通过next数据类型来获取相应类型数据。
通过hasNext数据类型来判断是否有相应的数据类型输入。

语句作用
nextInt()获取下一个整型数据
nextLong()获取下一个长整型数据
nextDouble()获取下一个双精度浮点数据
··· ······ ···
nextBigDecimal()获取一个BigDecimal类型的数据
语句作用
hasNextInt()判断下一个输入是否为整型数据
hasNextLong()判断下一个输入是否为长整型数据
hasNextDouble()判断下一个输入是否为双精度浮点数据
··· ······ ···
hasNextBigDecimal()判断下一个输入是否为BigDecimal类型的数据
//**需求**:从键盘获取多个数据,以回车作为分隔,统计输入的个数,输出这些数据的总和与平均数,当输入数为非数字时结束程序。
public static void main(String[] args){
        //新建一个扫描器对象来获取用户的输入
        Scanner scanner = new Scanner(System.in);
        //定义双精度sum来存储总和数据,定义整型数据来记录输入了多少个数
        double sum = 0.0;
        int count = 0;

        while(scanner.hasNextDouble()){  //循环判断是否有双精度的数字输入
            double num = scanner.nextDouble();  //获取输入的数据
            sum += num;
            count++;
            System.out.println("has input " + count + " num " + " sum = " + sum);
        }//如果输入的不是数字则直接退出while循环

        System.out.println(count + " num has input" + " sum = " + sum + " average = " + (sum/count));
        scanner.close();
    }

②.顺序结构

  • Java语句的默认结构就是顺序结构!从上至下,一条一条执行下去。
    这样的结构是任何一个算法都离不开的基本算法结构。
语句A
语句B
C

③.选择结构

- if单选择结构

如果 条件成立执行A

public class IfSingleTest {
    public static void main(String[] a){
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入内容:");
        //定义字符串接受输入的内容
        String s1 = scanner.nextLine();
        if(s1.equals("Hello")){  //判断输入字符串与预设内容是否相等,相等则输出预设内容
            System.out.println("Hello Developer!");
        }
        System.out.println("END");
        scanner.close();
    }

- if双选择结构

如果 条件成立执行A否则执行B

public class IfDoubleTest {
    public static void main(String[] a){
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入考试成绩:");
        int score = scanner.nextInt();
        if (score >= 60) System.out.println("及格!");
        else System.out.println("不及格!");
        scanner.close();
    }

- if多选择结构

如果 A条件成立执行A 否则如果 B条件成立执行B······否则如果 N条件成立执行N 否则 执行默认

public static void main(String[] a){
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入你的成绩:");
        //获取输入的成绩数据
        double score = scanner.nextDouble();
        //if多选择结构来判断成绩的等级
        if (score == 100) System.out.println("恭喜满分!");
        else if(score < 100 && score >= 90) System.out.println("LevelA");
        else if(score < 90 && score >= 80) System.out.println("LevelB");
        else if(score < 80 && score >= 60) System.out.println("LevelC");
        else if(score < 60) System.out.println("不及格!");
        else System.out.println("非法输入!");
        scanner.close();
    }

- 嵌套的if结构

public static void main(String[] a){
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入性别:");
        String sex = scanner.next();

        if(sex.equals("男")){
            System.out.print("请输入年龄:");
            int age = scanner.nextInt();
            if (age >= 50) System.out.println("已过中年!");
            else System.out.println("年轻着呢!");
        }else if(sex.equals("女")){
            System.out.print("请输入年龄:");
            int age = scanner.nextInt();
            if (age >= 50) System.out.println("永远都是小仙女!");
            else System.out.println("一直都是小仙女!");
        }else {
            System.out.println("非法输入!");
        }
    }

if结构注意事项

  • if语句至多有一个else语句,else语句在所有的else if语句之后
  • if语句可以有若干个else if语句,他们必须在else语句之前
  • 当其中一个else if被检测为true之后,将跳过其他的else if以及else语句。

- switch多选择结构

定义:多选择结构的另一个实现方式 switch case语句
原理:判断的一个值是否与一个列表中的有一个值相等,是则执行相应语句。

//switch语句的语法结构
	switch(expression){
	case value1:
		//语句1
		break; //可以选择不写
	case value2:
		//语句2
		break; //可以选择不写
	······
	case valueN:
		//语句N
		break; //可以选择不写
	default : //可以选择不写
		//默认语句
	}

注意

  • switch接受的变量类型可以是:byte,short,int,char,String(JDK7之后)
  • case标签必须为字符串常量字面量
  • break语句是可选的,如果省略就会发生case穿透现象,程序会穿透case一直到遇到下一个break语句或者直到switch语句结束。

拓展小知识

将.class文件直接在IDEA中打开,便可以实现反编译,并查看反编译之后的代码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值