【问题标题】:Reading Characters from StdIn [closed]从标准输入读取字符[关闭]
【发布时间】:2013-09-12 09:10:58
【问题描述】:
    public class New
    {
        public static void main(String[] args)
        {
            System.out.println("Calculator");

            float a = StdIn.readFloat(); 
            char sign = StdIn.readChar();
            float b = StdIn.readFloat();
            float c = 0;

            if (sign == '+')    c = a+b;
            else if (sign == '-')   c = a-b;
            else if (sign == 'x')   c = a*b;
            else if (sign == '/')   c = a/b;

            System.out.println(c);

        }
    }

我需要一些关于这段代码的帮助,我正在尝试制作一个计算器,它可以接受字符和浮点数据类型的 StdIn 输入。

【问题讨论】:

  • 您没有提出任何问题,因此不清楚您在问什么
  • 对不起,我忘了问,我遇到了运行时错误,它说的是未知输入。
  • java.util.Scanner 的 java.util.Scanner.next(Unknown Source) 的 java.util.Scanner.throwFor(Unknown Source) 的线程“main”java.util.InputMismatchException 中的异常。 NextFloat(Unknown Source) at StdIn.readFloat(StdIn.java:142) at New.main(New.java:9)
  • 你可以试试代码攻击。它使用扫描仪。这个 StdIn 似乎是另一个库

标签: java char stdin calculator


【解决方案1】:

试试Scanner 类。

像这样:

import java.util.Scanner;

public class New
{

public static void main(String[] args)
{
    System.out.println("Calculator");

    Scanner scanner = new Scanner(System.in);

    System.out.println("Enter Parameter ");
    System.out.print("a      : ");
    float a = scanner.nextFloat();

    System.out.print("+|-|*|/: ");
    String op = scanner.next();

    System.out.print("b      : ");
    float b = scanner.nextFloat();
    float c = 0;

    switch (op)
    {
        case "+":
            c = a + b;
            break;

        case "-":
            c = a - b;
            break;

        case "*":
            c = a * b;
            break;

        case "/":
            c = a / b;
            break;

        default:
            System.out.println("Illegal operant");
    }

    System.out.println("Result: " + c);
}
}

我添加了一个 switch case 而不是 else ifs。

【讨论】:

  • 嗯,我遇到了涉及 Scanner 类的编译器错误。
  • 导入是否正确? import java.util.Scanner;
  • 我需要下载某个库文件才能让 Scanner 类工作吗?
  • 不,只是顶部的正确导入。从 Java 1.5 开始就在那里 docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
  • 啊,那行得通。感谢您的帮助,我是编程新手,这个程序已经困扰我好几天了。现在我要摆弄它,直到我彻底了解它为止。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 2012-02-17
  • 2014-07-25
相关资源
最近更新 更多