Java 为什么不是';这个简单的计算器不工作吗?

Java 为什么不是';这个简单的计算器不工作吗?,java,Java,我试图创建一个简单的计算器,但为什么它不打印结果呢 package SimpleCalc; import java.util.Scanner; public class SimpleCalc { public static void main(String[] args) { //String metod = ""; String minus, plus, multiplikation; minus = ""; plu

我试图创建一个简单的计算器,但为什么它不打印结果呢

package SimpleCalc;

import java.util.Scanner;

public class SimpleCalc {

    public static void main(String[] args) {
        //String metod = "";
        String minus, plus, multiplikation;
        minus = "";
        plus = "";
        multiplikation = "";
        int resultat;

        Scanner sc = new Scanner(System.in);
        System.out.println("Vad vill du använda? minus, plus, multiplikation?");
        String svar1 = sc.nextLine();
        //svar1 += metod;
        System.out.println("Vilket tal?");
        int nr1 = sc.nextInt();
        System.out.println("Vilket tal vill du" + svar1 + "med?");
        int nr2 = sc.nextInt();


        if (svar1==minus) {
            resultat = nr1 - nr2;
            System.out.println(nr1 + svar1 + nr2 + "blirasd: " + resultat);
        }   

        else if (svar1==plus) {
            resultat = nr1 + nr2;
            System.out.println(nr1 + svar1 + nr2 + "blir: " + resultat);

        }
    }
}
两个问题:

  • 您还没有用合适的值初始化减号和加号字符串,稍后可以进行比较
  • 您使用的是比较字符串引用的
    ==
    。我建议您对字符串使用
    equals
    方法
  • 您正在使用
    int nr1=sc.nextInt()
    如果在那里按enter键,则下一次输入
    int nr2=sc.nextInt()将为空,解析“返回键”,即空结果。相反,我建议您使用
    intnr1=Integer.parseInt(sc.nextLine())

  • 您的操作字符串为空。还可以使用
    equals
    来比较字符串

    package SimpleCalc;
    
    import java.util.Scanner;
    
    public class SimpleCalc {
    
        public static void main(String[] args) {
            //String metod = "";
            String minus, plus, multiplikation;
            minus = "-";
            plus = "+";
            multiplikation = "*";
            int resultat;
    
            Scanner sc = new Scanner(System.in);
            System.out.println("Vad vill du använda? minus, plus, multiplikation?");
            String svar1 = sc.nextLine();
            //svar1 += metod;
            System.out.println("Vilket tal?");
            int nr1 = sc.nextInt();
            System.out.println("Vilket tal vill du" + svar1 + "med?");
            int nr2 = sc.nextInt();
    
    
            if (svar1.equals(minus)) {
                resultat = nr1 - nr2;
                System.out.println(nr1 + svar1 + nr2 + "blirasd: " + resultat);
            }   
    
            else if (svar1.equals(plus)) {
                resultat = nr1 + nr2;
                System.out.println(nr1 + svar1 + nr2 + "blir: " + resultat);
    
            }
        }
    }
    

    将运算符符号放入变量中,如下所示:

        minus = "-";
        plus = "+";
        multiplikation = "*";
    
    此外,无法使用
    =
    运算符在java中比较两个字符串。你必须用同样的方法。例如
    使用
    if(svar1.equals(减号))
    而不是
    if(svar1==减号)
    来比较两个字符串

    有几个问题
    加号
    减号
    以及这两个空字符串,对于字符串比较,您需要使用
    .equals()
    感谢大家的帮助,但是由于某些原因,它仍然无法打印结果。我完全按照你说的做了。代码现在看起来像是@cylon发布的代码。你能把最新的代码和你的代码输出一起粘贴吗?我不能让这个``代码的东西工作,很抱歉这么愚蠢。我做了两个粘贴框:你需要输入“-”而不是字符串“减号”。如果这个答案有帮助,那么你可以在计票下面勾选答案,这样将来对其他人会有帮助。