scanner对象,顺序及选择结构

简介: scanner对象 基本语法: Scanner s = new Scanner(System.in) 使用next()和nextLine()读取前,使用hasNext()和hasNextLine()来判断是否还有输入数据 next(): 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的

scanner对象,顺序及选择结构


scanner对象


  • 基本语法:


Scanner s = new Scanner(System.in)


  • 使用next()和nextLine()读取前,使用hasNext()和hasNextLine()来判断是否还有输入数据


  • next():


  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
  4. next()不能得到带有空格的字符串


package com.wyd.scanner;
import java.util.Scanner;
public class Demo01 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接受键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next();
            System.out.println("输入的内容为:"+str);
        }
        //凡是属于IO流的类,如果不关闭就会一直占用资源,用完就关掉
        scanner.close();
    }
}


  • nextLine():


  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的 所有字符
  2. 可以获得空白


package com.wyd.scanner;
import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收数据:");
        //判断是否还有输入
        if (scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出的内容为:"+str);
        }
        scanner.close();
    }
}


package com.wyd.scanner;
import java.util.Scanner;
public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数据:");
        String str = scanner.nextLine();    //不判断是否还有输入
        System.out.println("输入的内容为:"+str);
    }
}


package com.wyd.scanner;
import java.util.Scanner;
public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //从键盘接收数据
        int a = 0;
        float b = 0.0F;
        System.out.println("请输入整数数据:");
        //如果。。。那么。。。
        if (scanner.hasNextInt()){
            a = scanner.nextInt();
            System.out.println("整数数据:"+a);
        }else{
            System.out.println("输入的不是整数数据!");
        }
        System.out.println("请输入小数:");
        if (scanner.hasNextFloat()){
            b=scanner.nextFloat();
            System.out.println("输入的小数数据是:"+b);
        }else {
            System.out.println("输入的不是小数!");
        }
        scanner.close();
    }
}


package com.wyd.scanner;
import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        //输入多个数字,并求和与平均值,每输入一个数字以回车确认,通过输入非数字字符来结束输入并执行结果
        Scanner scanner = new Scanner(System.in);
        //和
        double sum=0;
        //计算输入了多少个数字
        int m=0;
        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        while (scanner.hasNextDouble()){
            double x=scanner.nextDouble();
            m++;
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据,这"+m+"个数据的和为:"+sum);
        }
        System.out.println(m+"个数的和为:"+sum);
        System.out.println("输入数字的个数为:"+m);
        scanner.close();
    }
}


顺序结构


package com.wyd.struct;
public class ShunXuDemo {
    public static void main(String[] args) {
        System.out.println("hello01");
        System.out.println("hello02");
        System.out.println("hello03");
        System.out.println("hello04");
    }
}


选择结构


if单选择结构:


if (布尔表达式) {
    //如果布尔表达式为true将执行的语句
}


微信图片_20220425163325.png


package com.wyd.struct;
import java.util.Scanner;
public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容:");
        String s = scanner.nextLine();
        //equals判断字符串是否相等
        if (s.equals("Hello")){
            System.out.println(s);
        }
        System.out.println("End");
        scanner.close();
    }
}


if双选择结构


if (布尔表达式) {
    //如果布尔表达式的值为true
} else {
    //如果布尔表达式的值为false
}


微信图片_20220425163333.png


package com.wyd.struct;
import java.util.Scanner;
public class IfDemo02 {
    public static void main(String[] args) {
        //考试分数>=60分就及格,<60分就不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score=scanner.nextInt();
        if (score>=60){
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
        scanner.close();
    }
}


if多选择结构


if(布尔表达式 1){
    //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
    //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
    //如果布尔表达式 3的值为true执行代码
}else {
    //如果以上布尔表达式都不为true执行代码
}


微信图片_20220425163339.png


package com.wyd.struct;
import java.util.Scanner;
public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        /*
        if语句至多有一个else语句,else语句在所有的else if语句之后。
        if语句可以有若干个else if语句,它们必须在else语句之前。
        一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
         */
        System.out.println("请输入成绩:");
        int score=scanner.nextInt();
        if (score==100){
            System.out.println("恭喜满分");
        }else if (score<100 && score>=90){
            System.out.println("A级");
        }else if (score<90 && score>=80){
            System.out.println("B级");
        }else if (score<80 && score>=70){
            System.out.println("C级");
        }else if (score<70 && score>=60){
            System.out.println("D级");
        }else if (score<60 && score>=0){
            System.out.println("不及格");
        }else {
            System.out.println("成绩不合法");
        }
        scanner.close();
    }
}


嵌套的if结构


if(布尔表达式 1){
    //如果布尔表达式 1的值为true执行代码
    if(布尔表达式 2){
        //如果布尔表达式 2的值为true执行代码
    }
}


switch多选择结构


package com.wyd.struct;
public class SwitchDemo01 {
    public static void main(String[] args) {
        //case穿透            //switch 匹配一个具体的值
        char grade = 'C';
        switch (grade){
            case 'A':
                System.out.println("优秀");
                break;                    //可选,判断是否继续输出后续内容
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("及格");
                break;
            case 'D':
                System.out.println("再接再厉");
                break;
            case 'E':
                System.out.println("挂科");
                break;
            default:
                System.out.println("未知等级");
        }
    }
}


  • switch语句中的变量类型可以是:byte, short, int, char 或者 String。


  • 同时case标签必须为字符串常量或字变量


switch(expression){
    case value :
        //语句
        break; //可选,尽量写上
    case value :
        //语句
        break; //可选
    //你可以有任意数量的case语句
    default : //可选
        //语句
}


  • 使用IDEA进行反编译class文件,看源码


  • 在file→project struct中查看输出文件夹,打开程序的out文件夹,将class文件复制到程序的包文件夹中,在IDEA中就可查看class文件的源码:


微信图片_20220425163350.png


微信图片_20220425163355.png


package com.wyd.struct;
public class SwitchDemo02 {
    public static void main(String[] args) {
        String name="狂神";
        //JDK7的新特性,表达式结果可以是字符串
        //字符的本质还是数字     使用哈希码转换
        //反编译   java-----class(字节码文件)-----反编译(IDEA)
        switch (name){
            case "秦疆":
                System.out.println("秦疆");
                break;
            case "狂神":
                System.out.println("狂神");
                break;
            default:
                System.out.println("弄啥嘞!");
        }
    }
}


相关文章
|
机器学习/深度学习 存储 编解码
Tiny Time Mixers (TTM)轻量级时间序列基础模型:无需注意力机制,并且在零样本预测方面表现出色
IBM研究人员提出Tiny Time Mixers (TTM),这是一个轻量级、基于mlp的TS模型,参数量小于1M,在M4数据集上表现优于大型SOTA模型,且具备优秀的零样本预测能力。TTM无注意力机制,利用TSMixer进行多级建模,自适应补丁和频率前缀调整等创新特性提升性能。预训练和微调阶段各有独特设计,预训练仅用单变量序列,微调时学习多变量依赖。TTM在某些任务中证明了小模型的优越性,且模型已开源。
631 1
|
监控 数据可视化 Java
掌握 JMeter 插件管理器:提升性能测试的利器
Apache JMeter 是一款强大的性能测试工具,其灵活性和扩展性使其在性能测试领域广受欢迎。JMeter 插件管理器(JMeter Plugins Manager)为用户提供了一个方便的平台来安装、更新和管理各种插件,从而大大扩展了 JMeter 的功能。
|
12月前
|
XML Java Maven
idea配置maven步骤及常见问题
本文介绍了在IDEA中配置Maven的详细步骤,包括Maven的下载、系统环境变量的配置、Maven本地仓库的设置、镜像加速的配置,以及在IDEA中指定Maven路径和配置文件。同时,还提供了解决每次新建项目需要重新手动配置Maven问题的方法。
idea配置maven步骤及常见问题
|
JSON 文字识别 API
印刷文字识别操作报错合集之如何解决报错:Invalid Result - algorithm runtime exception
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
Java 测试技术 开发者
Spring探索:既生@Resource,何生@Autowired?
提到Spring依赖注入,大家最先想到应该是@Resource和@Autowired,很多文章只是讲解了功能上的区别,对于Spring为什么要支持两个这么类似的注解却未提到,属于知其然而不知其所以然。不知大家在使用这两个注解的时候有没有想过,@Resource又支持名字又支持类型,还要@Autowired干嘛,难道是Spring官方没事做了?
13908 3
Spring探索:既生@Resource,何生@Autowired?
|
算法
LabVIEW开发仿真转矩加载系统
LabVIEW开发仿真转矩加载系统
61 0
|
Java Linux Windows
kali burpsuite 安装与使用
作者主页:https://www.couragesteak.com/
kali burpsuite 安装与使用
|
算法 数据挖掘 Windows
靶向RNA-seq全面解决方案和加速分析,只看这篇就够了!
靶向RNA-seq全面解决方案和加速分析,只看这篇就够了!
190 0
|
NoSQL Redis 数据安全/隐私保护
【Redis】Redis (error) NOAUTH Authentication required解决方案
【Redis】Redis (error) NOAUTH Authentication required解决方案
820 0
【Redis】Redis (error) NOAUTH Authentication required解决方案

热门文章

最新文章