要求:对输入的内容进行判断,如果是int,到下一步输入数字,如果不是则返回并重新输入数字,本课程要求只对两个数字进行运算。
我直接话不多说,上代码。(解释见后面)
```java
import java.util.Scanner;
public class arr {
public static boolean isNumeric(String str) {
for (int i = str.length(); --i >= 0; ) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
public static void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
int i = 0;
int f = 0;
boolean g = false;
while (true) {
System.out.println("请输入第1个整数:");
// 接收数据
String j = sc.next();
g = isNumeric(j);
if (g == false) {
System.out.println("请重新输入整数!!!");
continue;
} else {
i = Integer.parseInt(j);
break;
}
}
while (true) {
System.out.println("请输入第2个整数:");
// 接收数据
String j = sc.next();
g = isNumeric(j);
if (g == false) {
System.out.println("请重新输入整数!!!");
continue;
} else {
f = Integer.parseInt(j);
break;
}
}
int result = 0;
fuhao:while (true) {
System.out.println("请输入计算符号(+ - * /):");
String s = sc.next();
switch (s) {
case "+":
result = i + f;
break fuhao;
case "-":
result = i - f;
break fuhao;
case "*":
result = i * f;
break fuhao;
case "/":
result = i / f;
break fuhao;
default:
System.out.println("请重新输入符号!!!");
continue fuhao;
}
}
System.out.println("计算结果"+result);
}
}
```
首先这个类是判断输入的内容是否为数字的,不是则返回false,是则返回true。(java自带)
如果是数字,因为我们录入后是字符串模块,就需要用到强制转换。Integer.parseint(字符串名)
输入计算符号中,要用到switch语句和while语句,对符号进行判断,若是加减乘除则执行相应功能,若是其他的则执行continue功能,重新录入符号。这里建议用标号功能(即给循环一个名称),方便跳出或者执行某个循环,我这里给一个循环起名为fuhao。便于执行。
最后就是把结果输出了,完毕。
缺点:若是负数则会返回false。