Java如何实现键盘输入?使用Scanner类使用方法解析。
为什么需要键盘录入数据?
我们书写程序时候,数据是固定不变的,但是在开发当中,数据肯定是动态的而不是固定的,所以我们需要把固定的数据更改为键盘录入。
如何使用Scanner键盘录入对象
1、导包
在class修饰的类名上面加入如下语句
import java.util.Scanner;
2、创建对象
Scanner input = new Scanner(System.in);
3、使用变量接收数据
int num = input.nextInt();
注意:
1.常用方法
nextInt(); 获取用户输入的整数
nextDouble(); 获取用户输入的小数
nextBoolean(); 获取用户输入的boolean值 【不常用】
nextLine(); 获取用户输入的一行,结果是String类型,获取用户输入的字符串
next(); 结果是String类型,获取用户输入的字符串
这些方法都是阻塞方法
2.阻塞方法
什么是阻塞方法?===> 程序执行到这个方法的时候,会停止执行,并不会继续执行,直到用户输入结束,程序继续执行。
3.可能出现的异常
java.util.InputMismatchException
异常名称: 输入的类型不匹配异常
产生原因: 用户输入的类型和接收的类型不一致
解决办法: 类型匹配即可
代码示例
mport java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 2.创建键盘输入对象 固定格式
Scanner input = new Scanner(System.in);
// 给出用户提示性语句
System.out.print("请输入一行字符串: ");
// 3.获取用户的输入
String line = input.nextLine();
System.out.println("您输入的数据是: " + line);
System.out.print("请输入整数: ");
int num = input.nextInt();
System.out.println("您输入的整数是: " + num);
System.out.print("请输入小数: ");
double num2 = input.nextDouble();
System.out.println("您输入的小数是: " + num);
}
}
键盘录入两个数,并将这两个数求和,求最大值,并输出
// 1.导包
import java.util.Scanner;
public class ScannerDemo02 {
public static void main(String[] args) {
// 2.创建键盘输入对象
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个数: ");
// 3.定义变量num1 接受用户输入的整数
int num1 = input.nextInt();
System.out.print("请输入第二个数: ");
// 4.定义变量num2 接受用户输入的整数
int num2 = input.nextInt();
// 5.定义变量sum 计算两个数的和
int sum = num1 + num2;
// 6.定义变量max 求两个数的最大值
int max = (num1 > num2) ? num1: num2;
// 7.输出和以及最大值
System.out.println("两个数的和为: " + sum + ",两个数的最大值为: " + max);
}
}
键盘录入两个数,并判断两个数是否相等,如果两个数相等,输出两个数相等,不相等就输出两个数不相等,同时输出两个数中较大的值
import java.util.Scanner;
public class ScannerDemo03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个数: ");
int num1 = input.nextInt();
System.out.print("请输入第二个数: ");
int num2 = input.nextInt();
// 三目运算符的值的类型?
// int max = (num1 > num2) ? num1: num2;
String result = (num1 == num2) ? "两个数相等": "两个数不相等,并且两个数中较大的值为: " + ((num1 > num2) ? num1: num2);
System.out.println(result);
}
}
还没有评论,来说两句吧...