流程语句控制学习之Scanner
用户交互Scanner
next()方法使用
package 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()){
// 接收用户的输入
String str = scanner.next(); // 输入字符串:hello world
System.out.println("输出的内容为:" + str); // 输出结果:hello
}
// 凡是属于IO流的类如果不关闭会一直占用资源
scanner.close();
}
}
nextLine()方法使用
package 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(); // 使用nextLine接收多行字符串
System.out.println("输出内容:" + str); // 输出的内容
scanner.close(); // 结束
}
}
-
举例:hasNextIng()和hasNextFloat()
has检查输入的内容里是否有指定的数据类型
package scanner;
import java.util.Scanner;
public class Demo04 {
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(); // i用于接收输入的数据
System.out.println("整数数据:" + i); // 输出
}else{ // 如果不是整数则执行以下代码
System.out.println("输入的不是整数!");
}
System.out.println("请输入小数");
if (scanner.hasNextFloat()){ // 判断输入的是否是小数
f = scanner.nextFloat(); // f用于接收输入的数据
System.out.println("小数数据:" + f);
}else{
System.out.println("输入的不是小数!");
}
scanner.close(); // 结束
}
}
-
while循环计算总和与平均数
package 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 + "个数据,当前结果和为:" + sum); } System.out.println(m + "个数的和为:" + sum); System.out.println(m + "个数的平均数为:" + (sum / m)); scanner.close(); } }