我是java和这个论坛的新手。我为一个简单的计算器写了一个代码。它正在发挥作用。但是,如果我(让我们说)把“=”代替“(+, - ,*,/)”,我怎么能重复主要方法呢?我应该使用循环还是其他东西?提前谢谢!
import java.util.Scanner;
public class SimCal {
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 scan1 = new Scanner(System.in);
System.out.println("What do you want to do (+, -, *, /)? ");
String input1 = scan1.nextLine();
if (!input1.equals("+") && !input1.equals("-") && !input1.equals("*") && !input1.equals("/")) { // if wrong input given
System.out.println("You must Enter a valid operator");
} else {
Scanner scan2 = new Scanner(System.in);
System.out.println("Enter first number: ");
int input2 = scan2.nextInt();
Scanner scan3 = new Scanner(System.in);
System.out.println("Enter second number: ");
int input3 = scan3.nextInt();
if (input1.equals("+")) {
System.out.println(add(input2, input3));
} else if (input1.equals("/")) {
System.out.println(div(input2, input3));
} else if (input1.equals("-")) {
System.out.println(sub(input2, input3));
} else {
System.out.println(mul(input2, input3));
}
scan1.close();
scan2.close();
scan3.close();
}
}
}
答案 0 :(得分:0)
我对你的要求有点不确定,但我明白你想要能够重复计算器而不必再次运行它。这可以通过使用布尔和while块来实现。
以下是一个例子:
y_list= [1.0, 0.5669650111879195]
i=0
while all(y <= 1 for y in y_list):
i+=1
if all(y<= 1 for y in y_list):
break
print(i)
我希望这会有所帮助。就像Andy Turner提到的那样,你应该尝试不使用多个扫描仪。
编辑:我忘了关闭2台扫描仪。此外,如Saurav Sahu所述,切换案例可能是更好的方法。