gpt4 book ai didi

java - Java中如何从另一个类中获取值?

转载 作者:行者123 更新时间:2023-12-02 02:48:43 26 4
gpt4 key购买 nike

我刚刚开始学习这门语言,但一开始就陷入困境。我正在编写一个非常简单的计算器,用户必须在其中一行输入值。我按顺序获取这些值并将它们保存到我操作的变量中。为了保留值并执行操作,我有一个名为 Сalс 的单独类。

package com.company;
import java.util.Scanner;


public class Main {

public static void main(String[] args) {
System.out.print("Enter expression:");
Calc calc = new Calc();
System.out.printf("Result is:" + calc);
}
}

class Calc {
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
String operation = scanner.next();
int num2 = scanner.nextInt();

public int calc(int num1, int num2, String operation){
int result;
switch (operation){
case "+": result = num1+num2; break;
case "-": result = num1-num2; break;
case "*": result = num1*num2; break;
case "/": result = num1/num2; break;
default: System.out.println("The operation is not recognized. Repeat entry.");
result = calc(num1, num2, operation);
}
return result;
}
}

我尝试使用以下方式直接调用结果:

calc(result)
calc.calc(result)

但得到“无法解析符号“结果”。

在主类中,我期望获得已经计算出的值。请帮助我。

最佳答案

为此使用“OOP”或类确实没有意义,但通过简单的修改,您至少可以让代码正常工作:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
System.out.print("Enter expression:");
Calc calc = new Calc();
System.out.printf("Result is: " + calc.calc());
}
}

class Calc {
public int calc(){
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
String operation = scanner.next();
int num2 = scanner.nextInt();

int result = 0;
switch (operation){
case "+": result = num1+num2; break;
case "-": result = num1-num2; break;
case "*": result = num1*num2; break;
case "/": result = num1/num2; break;
default:
System.out.println("The operation is not recognized. Repeat entry.");
calc();
}
scanner.close();
return result;
}
}

请注意,在您的原始代码中,您从未在 main 方法中调用 calc() 方法。

关于java - Java中如何从另一个类中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57125126/

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