其实,根本就不应该一上来就创建Scanner对象,因为args本来就会接收数据的!
应该是在args中数据解析为整型后不满足范围后再来考虑创建Scanner对象
- package test;
- import java.io.BufferedInputStream;
- import java.util.Scanner;
- /*
- * 这是一个非常简单的题目,意在考察你编程的基础能力。
- * 千万别想难了哦。输入为一行,包括了用空格分隔的三个数据A、B、C(数据范围均在-40~40之间)。
- *
- * 输出为一行,为“A+B+C”的计算结果。
- * 思路:1.需要输入
- * ---一般,args会接收命令行的输入
- * 2.规定范围
- * ---数据范围均在-40~40之间, 只有当所有的输入都满足范围才能进行下一步
- * 3.将输入的字符转换为数字进行求和
- * ---
- * */
- public class TestABC {
- public static boolean check(int x)
- {
- if(x > -40 && x < 40)
- return true;
- return false;
- }
- public static void printSum(int a,int b, int c)
- {
- boolean flag = check(a) && check(b) && check(c);
- if(flag)
- {
- System.out.print("结果为:");
- System.out.println(a+b+c);
- }
- else {
- System.out.println("请重新输入三个在(-40~40内)的数:");
- Scanner scanner = new Scanner(new BufferedInputStream(System.in));
- a = scanner.nextInt();
- b = scanner.nextInt();
- c = scanner.nextInt();
- printSum(a, b, c);
- }
- }
- public static void main(String[] args) {
- int a,b,c;
-
- a = Integer.parseInt(args[0]);
- b = Integer.parseInt(args[1]);
- c = Integer.parseInt(args[2]);
- printSum(a, b, c);
- }
- }
复制代码
结果如图:
|
|