目录
本篇博客主要讲解Java基础语法中的,
控制台的三种输出、键盘的单个输入和多个输入,还有
注意事项
中我们要了解在读入字符串的时候scan.next()和scan.nextLine()这个语法。如果在之前我们还在键盘输入了其他字符,如果紧跟着执行了这个语句。我们敲了回车,那么scan.next()和scan.nextLine()会自动读入回车。而不是停下来等待我们输入。
要解决这个办法
我们需要在这之前通过scan.nextLine()来把这个回车读入。
大家好,本人是普通一本的在校大学生一枚,目前在学习java。之前也学了一段时间,但是没有发布博客。本人现在已经大二结束了,开学就大三了,时间过的真的很快。我会利用好这个暑假,来复习之前学过的内容,并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区进行讨论!!!
喜欢我文章的兄弟姐妹们可以点赞,收藏和评论我的文章。喜欢我的兄弟姐妹们以及也想复习一遍java知识的兄弟姐妹们可以关注我呦,我会持续更新滴,并且追求完整。
望支持!!!!!!一起加油呀!!!!
语言只是工具,不能决定你好不好找工作,决定你好不好找工作的是你的能力!!!!!
学历本科及以上就够用了!!!!!!!!!!!!!!!!!!!!!!!!!!!!
一、输出到控制台
基本语法:
java中有三种print方式
第一种
System.out.println("输出且换行"); // 输出一个字符串, 换行
第二种
System.out.print("输出不换行"); // 输出一个字符串, 不带换行
第三种
System.out.printf(format, msg); // 格式化输出,这个方法与c语言的print输出是一样的。
代码示例:
int x = 10;
System.out.printf("x = %d\n", x)
格式化字符串表格
这个表格简单记一下就好了,如果忘了,到时候查一下也可以。
二、从键盘输入
2.1单个数据的读入
从键盘输入,不同于c语言,首先我们要导入Scanner这个包,这个导包就相当于c语言当中的include。
首先我们打出Scanner在idea上方会自动多出import java.util.Scanner;
在类和对象知识点中我们会细讲这个东西。Scanner就相当于是个类型。
固定写法是
Scanner (自定义变量)= new Scanner(System.in);
这就相当于我们通过Scanner类,实例化了一个对象。假设
Scanner scan = new Scanner(System.in);
我们给这个对象起名为scan。并且写入System.in代表从键盘输入。
2.1.1输入一个整数
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
我们可以这样写。因为输入的是整数,所以我们用int来接收。
2.1.2输入一个字符串
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();//读入一行
String str = scan.next();//遇到空格结束
String str = scan.nextLine();//读入一行
String str = scan.next();//遇到空格结束
类似的我们可以输入字节型,字符型,整型,短整型,长整型,双精度浮点数,单精度浮点数,布尔类型,字符串类型。就不一一多说了。
值得注意的是我们下面提到的注意事项。
2.2多个输入的读入
我们通过循环。下面介绍的是读入int整型数据,读入其他类型数据也是一样的。就不多说了
scan.hasNextInt()
是否有下一个数字。
Scanner scan = new Scanner(System.in);
while (scan.hasNextInt()){
int num = scan.nextInt();
System.out.println("您输入的数字是:"+num);
}
scan.close();
运行结果:
如何让循环结束呢?在idea中我们需要ctril+d
代码示例:
使用 Scanner 循环读取 N 个数字,并求取其平均值
Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {
int tmp = sc.nextInt();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
注意事项1(重点):
java输入中,输入字符串的方法中如scan.nextLine();或者是scan.next();在读数据的时候会把上一个输入数据的回车读进去。
代码示例:
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = scan.nextInt();
System.out.println("你的年龄是:"+age);
System.out.println("请输入你的姓名:");
String name = scan.nextLine();
System.out.println("你的姓名是:"+name);
System.out.println("请输入你的工资:");
double salary = scan.nextDouble();
System.out.println("你的工资是:"+salary);
String str = scan.nextLine();
scan.close();
运行结果:
我们发现跳过了输入年龄。是由于我们输入年龄后敲的回车被下面的scan.nextLine();读取到了,
因此姓名就变成了一个回车。我们要解决这个问题,我们需要在
String name = scan.nextLine();
这行代码之前多加一行代码
scan.nextline();
这个代码就相当于把我们输入的回车读进去了。那么在执行String name = scan.nextLine();的时候。就没有回车了。就会正常执行。
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = scan.nextInt();
System.out.println("你的年龄是:"+age);
scan.nextLine();
System.out.println("请输入你的姓名:");
String name = scan.nextLine();
System.out.println("你的姓名是:"+name);
System.out.println("请输入你的工资:");
double salary = scan.nextDouble();
System.out.println("你的工资是:"+salary);
String str = scan.nextLine();
scan.close();
注意事项2:
注意, 每次使用Scanner要记得调用关闭方法
这就相当于使用了资源。早点关闭这个资源可以减少开销。提高效率。
scan.close();