gpt4 book ai didi

java - 为什么我的 java 计算器代码不工作?

转载 作者:行者123 更新时间:2023-12-01 06:53:08 24 4
gpt4 key购买 nike

package calculator;

import java.util.Scanner;

/**
* @author zhoushi15
*/
public class Calculator {
public static double num1;
public static double num2;
public static String opp;
/**
* @param args the command line arguments
*/
public static double sum;

public static void main(String[] args) {
// TODO code application logic here
boolean quit;
String calculator;
String exp;
System.out.print("Welcome to the AP Computer Science calculator!!");
Scanner input = new Scanner(System.in);
boolean calc = false;
while (calc == false) {
System.out.print("Enter an expression, or quit to exit: ");
exp = input.nextLine();
if (exp.equalsIgnoreCase("quit")) {
System.out.println("Thanks for stopping by!");
calc = true;
} else {
token(exp);
System.out.println(exp + "=" + sum);
}
}
}

public static void token(String x) {
Scanner jz = new Scanner(x);
if (jz.hasNextDouble()) {
if (jz.hasNextDouble()) {
num1 = jz.nextDouble();
} else {
System.out.println("error! It is not a number.");
}
if (jz.hasNext()) {
opp = jz.next();
}
if (jz.hasNextDouble()) {
num2 = jz.nextDouble();
}
} else if (jz.hasNext()) {
if (jz.hasNext()) {
opp = jz.next();
}
if (jz.hasNextDouble()) {
num1 = jz.nextDouble();
}
}
}

public static void opp(double num1, String opp, double num2) {
if (opp.equals("+")) {
sum = num1 + num2;
} else if (opp.equals("-")) {
sum = num1 - num2;
} else if (opp.equals("*")) {
sum = num1 + num2;
} else if (opp.equals("/")) {
sum = num1 / num2;
}
}

public static void opp2(String opp, double num1) {
if (opp.equals("|")) {
sum = Math.abs(num1);
} else if (opp.equals("v")) {
sum = Math.sqrt(num1);
} else if (opp.equals("~")) {
sum = Math.round(num1);
} else if (opp.equals("s")) {
sum = Math.sin(num1);
} else if (opp.equals("c")) {
sum = Math.cos(num1);
} else if (opp.equals("t")) {
sum = Math.tan(num1);
}
}
}

我的代码不是给出答案。例如,我的输入是4+5,那么输出是0.0,但我找不到问题出在哪里以及如何解决它。

最佳答案

看看您的 main 方法,您从未给变量 sum 赋值或调用执行此操作的方法。因此,您的计算器始终将结果打印为 0.0,这是 double 的默认初始化值。 oppopp2 不会自动使用,您需要实际调用它们。

关于java - 为什么我的 java 计算器代码不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735381/

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