JAVA流程控制 Scanner 对象
Scanner对象
用于实现程序和人的交互,调用JAVA的Scanner工具类,可以获取用户的输入。Java.util.Scanner 是新特征, 可以通过Scanner类来获取用户的输入。
基本语法
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
Scanner类的next()与nextLine()接收输入数据的区别
使用next()接收
遇到空格会停止
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); //输入hello world 输出的内容为 hello
//原因是用next接收到 空格 会停止
}
//方式属于 IO流的类(输入/输出) 如果不关闭会一直占用资源,要养成用完就关掉的习惯
scanner.close();
}
使用nextLine()接收
遇到回车 Enter 停止接收
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入内容");
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
//输入内容 hello wordl
//输出的内容为: hello wordl
}
scanner.close();
}
直接将输入流赋值给变量
public static void main(String[] args) {
System.out.println("输入的数据为:");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
//输入的数据为: hello world
//输出的内容为:hello world
scanner.close();
}
习题(实现加法的循环求和)
public static void main(String[] args) {
//求和
double sum =0;
//计算元素个数
int m=0;
//用到循环判断输入的个数
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
m++;
sum = sum+x;
}
System.out.println("求和为"+sum);
System.out.println("求平均数为:"+sum/m);
scanner.close();
//输入 10 20 30 40
//输出 求和为100.0 求平均数为:25.0
}