新到 Java(程序不断终止)

New To Java (Program Keeps Terminating)

需要这方面的帮助: 这是我的代码:http://pastebin.com/7aG0xbhJ 无法弄清楚如何 post 在这里。 只是一直说终止。正在尝试创建一个计算器。

import java.util.Scanner;
public class Calculator {
    public static void main(String args[]) {
            Scanner input=new Scanner(System.in);
            System.out.println("Welcome to My Multi Calculator");
            System.out.println("Here are the choices:");
            System.out.println("(1) Convert Pounds to Kilograms");
            System.out.println("(2) Convert USD to Euro");
            System.out.println("(3) Convert Degrees F to C");
            System.out.println("(4) Calculate 20% gratuity on a bill");
            System.out.println("(5) Calculate if a number is prime");
            System.out.println("(6) Calulate the absolute difference of two numbers");
           System.out.println("(7) Quit");

        if (input.equals("1")) {
            //System.out.println("1");
            System.out.println("Input amount:");
            double size = input.nextInt();
            System.out.println("Answer: "+ size*0.453592);
        }
        if (input.equals("2")) {
            System.out.println("2");
        }
        if (input.equals("3")) {
            System.out.println("3");
        }
        if (input.equals("4")) {
            System.out.println("4");
        }
        if (input.equals("5")) {
            System.out.println("5");
        }
        if (input.equals("6")) {
            System.out.println("6");
        }
        if (input.equals("7")) {
            System.out.println("7");
        }
    }
}

如前所述,您正在测试 Scanner 对象是否等于 String 实例,但事实并非如此,因为它们是完全不同类型的对象。

你想替换这个:

Scanner input=new Scanner(System.in);
// printing here
if (input.equals(...

有了这个:

Scanner scanner = new Scanner(System.in);
// printing here
String input = scanner.nextLine();
if (input.equals(...

补充:当然,当你这样做的时候,你还需要改变其他引用,比如

double size = input.nextInt();

使用您的扫描仪实例:

double size = scanner.nextInt();

您走在正确的轨道上,但请尝试从更广泛的意义上考虑它。你想让你的程序停止退出,对吧?您可以使用哪种类型的逻辑来实现该行为?

您想要的是让您的程序循环直到给出某个参数,从而使其结束。像下面这样的东西应该可以工作

while(!"USER_INPUT".equals("7")) {
    //continue checking values
}

这将允许您检查值的循环继续到 运行,只要用户输入的内容不等于您的退出情况。您还需要确保在该循环内提示用户进行另一次输入。没有它,您只会陷入那个循环而不会发生任何变化。

希望对您有所帮助,祝您好运!