Day4 -1 流程控制-用户交互Scanner, next
用 Scanner来获取用户的输入
1.
语法: Scanner scanner = new scanner( System in)
关闭: scanner.close
关闭这个scanner, 凡事属于IO流(即输入输出流)的类如果不关闭会一直占用资源,所以用完要关闭
- 接收
next ( ): 使用next 的方式进行接收
- next
必须要读到有效字符后才会结束输入
有空格就会去掉,只保留空格前的输入
- nextLine
一回车键为结束字符,可以获得空白
代码例子(next)
import java.util.Scanner; //把scanner倒入进来
public class Demo02 {
public static void main(String[] args) {
// 创造一个scanner对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收");
// 判断用户有没有输入字符串
if (scanner.hasNext()) {
// 使用next方式接收
String str = scanner.next();// 程序会等待用户输入完毕
System.out.println("输入的内容为:" + str);
scanner.close(); // 关闭这个scanner, 凡事属于IO流(即输入输出流)的类如果不关闭会一直占用资源,所以用完要关闭
}
}
}
代码例子(nextLine)
public class Demo2 {
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();
}
}
没有if条件也是一样用的
点击查看代码
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
String str = scanner.nextLine();
System.out.println("输入内容为:" + str);
scanner.close();
}
}
next有很多细节:nextInt, nextFloat, nextDouble等等...
点击查看代码
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()) {
i = scanner.nextInt();
System.out.println("整数:" + i);
} else {
System.out.println("不是整数数据");
}
System.out.println("请输入小数:");
if (scanner.hasNextFloat()) {
f = scanner.nextFloat();
System.out.println("小数:" + f);
} else {
System.out.println("不是小数数据");
}
scanner.close();
}
}
结合起来做一道题
点击查看代码
public class Demo02 {
public static void main(String[] args) {
// 我们可以输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
Scanner scanner = new Scanner(System.in);
double sum = 0;
// 计算输入来多少个数字
int m = 0;
System.out.println("请输入数据(如需停止请输入除数字外任何):");
// 通过循环来判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()) {
double x = scanner.nextDouble();
m = m + 1; // m++
sum = sum + x;
System.out.println("你输入了第" + m + "个数据,当前数据的和为: " + sum);
}
System.out.println(m + "个数的和为:" + sum);
System.out.println(m + "个数的平均数为:" + (sum / m));
scanner.close();
}
}
posted on 2025-09-09 09:57 escapedlili 阅读(6) 评论(0) 收藏 举报
浙公网安备 33010602011771号