gpt4 book ai didi

java - 重复main方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:43 25 4
gpt4 key购买 nike

我是 java 和这个论坛的新手。我为一个简单的计算器编写了代码。它正在发挥作用。但是如果我(比方说)把“=”而不是“(+, -, *,/)”,我该如何重复 main 方法呢?我应该使用循环还是其他东西?提前致谢!

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();
}
}
}

最佳答案

我有点不确定你在问什么,但我理解你希望能够重复计算器而不必再次运行它。这可以通过使用 boolean 值和 while block 来实现。

这是一个例子:

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 boolean done = false;


public static void main(String[] args){


Scanner scan1 = new Scanner(System.in);
Scanner scan2 = new Scanner(System.in);
Scanner scan3 = new Scanner(System.in);
while (!done) {
System.out.println("What do you want to do (+, -, *, /, quit)? ");
String input1 = scan1.nextLine();

if (!input1.equals("+") && !input1.equals("-") && !input1.equals("*") && !input1.equals("/") && !input1.equals("quit"))
{ //if wrong input given
System.out.println("You must Enter a valid operator");
}
else if (input1.equals("quit"))
{
done = true;
scan1.close();
scan2.close();
scan3.close();
}
else
{
System.out.println("Enter first number: ");
int input2 = scan2.nextInt();


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));

}

}
}
}
}

我希望这对您有帮助。就像安迪·特纳提到的那样,您应该尽量不要使用多个扫描仪。

编辑:我忘记关闭 2 个扫描仪。此外,正如 Saurav Sahu 所提到的,开关盒可能是实现此目的的更好方法。

关于java - 重复main方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40202223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com