ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

交互式简易循环计算器-nextLine()和next()等详解

2021-06-30 13:02:09  阅读:241  来源: 互联网

标签:nextLine scanner System next 回车符 交互式 Scanner nextDouble 读取


首先搞清楚nextLine() 和 next()、nextInt()、nextDouble()、nextFloat()方法读取问题

nextInt()读取结果为一个int类型数据,返回int值

nextFloat()读取结果为float类型,返回float值

next()读取结果为String类型,返回string类型

next Line()读取结果为String类型,返回string类型

  1. nextLine()也是以回车符为结束,并且只是以回车符结束,并且会读取回车符

  2. next(),nextInt()、nextDouble()和nextFloat()看到空格符或回车符都认为读取结束,此时不会读取回车符。
    意思就是回车符只会留在这里等待下一个可以读取回车符号的读取流来把这个回车符接收掉

  3. 问:在使用nextLine()读取字符串的时候,有时候还没来得及输入就直接跳过了?

    解决方式:参考链接

    利用nextLine()方法读取一个空回车符
    input.nextLine();
    如果消息队列里面有回车符 可以加一个 input.nextLine();把消息队列清空,然后再去使用nextLine()方法

简易计算器的实现

  1. 此处用户输入x的值,空格或者回车(假设此处是回车),再输入y的值;

  2. 此时缓存中有:x的值、回车、y的值;

  3. 接着用nextDouble()方法接收x的值,遇到回车认为接收这个动作结束并且不会读取回车符;

  4. 此时缓存中还剩:回车、y的值;

  5. nextDouble()方法和next()类似,遇到第一个有效字符才开始接收,此时缓存中第一个位置是空格或者回车,为无效字符,因此接下来的nextDouble()方法会跳过回车符,不接收,遇到y的值后判断为有效字符则接收。

package kaka;

import java.util.Scanner;

public class CalDemo {
    
    //加法
    public static  void add(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入两个数字,以空格或者回车隔开: ");
        double x=scanner.nextDouble();//键盘输入x的值
        double y=scanner.nextDouble();//键盘输入y的值
        System.out.println(x+y);
    }
    
    //减法
    public static void minus(){
        System.out.println("请输入两个数字,以空格或者回车隔开: ");
        Scanner scanner=new Scanner(System.in);
        double x=scanner.nextDouble();//键盘输入x的值
        double y=scanner.nextDouble();//键盘输入y的值
        System.out.println(x-y);
    }
    
    //乘法
    public static void mul(){
        System.out.println("请输入两个数字,以空格或者回车隔开: ");
        Scanner scanner=new Scanner(System.in);
        double x=scanner.nextDouble();//键盘输入x的值
        double y=scanner.nextDouble();//键盘输入y的值
        System.out.println(x*y);
    }
    //除法


        public static void div(){
            System.out.println("请输入两个数字,以空格或者回车隔开: ");
            Scanner scanner=new Scanner(System.in);
            double x=scanner.nextDouble();//键盘输入x的值
            double y=scanner.nextDouble();//键盘输入y的值
            System.out.println(x/y);
        }

    public static void main(String[] args){
        for(int i=1;i<100;i++)
        {
            System.out.println("加法计算请输输入1");
            System.out.println("减法计算请输输入2");
            System.out.println("乘法计算请输输入3");
            System.out.println("除法计算请输输入4");

                Scanner scanner=new Scanner(System.in);
                int x=scanner.nextInt();

                switch(x){
                    case 1:
                        add();break;
                    case 2:
                        minus();break;
                    case 3:
                        mul();break;
                    case 4:
                        div();break;
                     default:
                         System.out.println("请输入1到4的数字");
                         break;
                }


        }
    }


}

标签:nextLine,scanner,System,next,回车符,交互式,Scanner,nextDouble,读取
来源: https://www.cnblogs.com/kakafa/p/14953972.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有