Scanner类用法心得体会
问题引入:写一个计算器,要求实现加减乘除运算功能,并且能够循环接收新的数据,通过用户交互实现
法一
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
int a = scanner.nextInt();
System.out.println("请输入第二个数:");
int b = scanner.nextInt();
System.out.println("请输入运算符:");
String op = scanner.next();
switch (op){
case "+":
System.out.println(add(a,b));
break;
case "-":
System.out.println(sub(a,b));
break;
case "*":
System.out.println(mul(a,b));
break;
case "/":
System.out.println(div(a,b));
break;
}
scanner.close();
}
//加法
public static int add(int a,int b){
return a+b;
}
//减法
public static int sub(int a,int b){
return a-b;
}
//乘法
public static int mul(int a,int b){
return a*b;
}
//除法
public static int div(int a,int b){
return a/b;
}
运行结果
可以看到程序运行一次就结束了
改进方法:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
while (scanner.hasNextLine()){//可以循环使用计算器
int a = scanner.nextInt();
System.out.println("请输入第二个数:");
int b = scanner.nextInt();
System.out.println("请输入运算符:");
String op = scanner.next();
switch (op){
case "+":
System.out.println(add(a,b));
break;
case "-":
System.out.println(sub(a,b));
break;
case "*":
System.out.println(mul(a,b));
break;
case "/":
System.out.println(div(a,b));
break;
}
System.out.println("请输入第一个数");
}
scanner.close();
}
//加法
public static int add(int a,int b){
return a+b;
}
//减法
public static int sub(int a,int b){
return a-b;
}
//乘法
public static int mul(int a,int b){
return a*b;
}
//除法
public static int div(int a,int b){
return a/b;
}
运行结果
可以看到程序可以一直运行下去,原因是加入了循环语句while (scanner.hasNextLine())