不使用异常进行整数检查

时间:2014-11-10 17:48:45

标签: java event-handling isnumeric

我一直在使用Java很短的时间,所以请耐心等待我。我正在开发一个java类简介的程序,我必须创建一个简单的计算器(没有GUI)而不使用异常,但仍然会捕获输入错误。我能够毫无问题地做异常处理程序,但是这个让我疯狂!我需要一个替代语句" if(a == char || b == char)"这就是我到目前为止所拥有的:

import java.util.*;

public class calculator_No_Event {

public static void main(String[] args) 
{
    // TODO Auto-generated method stub
    int a,b,c;
    char d;
    boolean e;
    Scanner input=new Scanner(System.in);

    try
    {   
        System.out.print(" Enter the first number: ");
        a=input.nextInt();
        System.out.print("Enter the second number: ");
        b=input.nextInt();
        System.out.print("Enter + or - :");
        String f=input.next();
        d=f.charAt(0);


        if (a==char || b==char)
        {
            System.out.println("Error");
        }   
        else
        {
            switch(d)
            {
                case '+':
                    c =a+b;
                    System.out.print(a + "+" + b + "=" + c);
                    break;
                case '-':
                    c =a-b;
                    System.out.print(a + "-" + b + "=" + c);
                    break;
            }
        }
}
    finally
    {
        System.out.println("Thank you.");
    }
}

}

2 个答案:

答案 0 :(得分:2)

在致电Scanner.hasNextInt()之前,您应致电Scanner.nextInt()。与Scanner.hasNext()Scanner.next()一样。

答案 1 :(得分:0)

你对这一行表现出很多误解

if (a = char || b = char)
  1. 我认为您的意思是使用equal to运算符,而不是assignment运算符== instead of =

  2. abc )是int s,如main中所声明的那样。所以我们知道它们永远不会是char,除非你将它们转换为字符 - 但它们永远都是字符。 intchar是不同的类型,1字符可以是任何一种类型 - 所以尝试这样做,因为你只是赢了工作。

  3. 谷歌搜索检查字符串是否为数字返回Determine if a String is an Integer in Java,但是,在这种情况下,@ElliottFrisch's answer是您可能想要使用的方法。每当您使用新的Java类(,如Documentation )时,学习查看Scanner非常有价值,可以更好地理解和了解您所在的类使用