在不使用异常的情况下进行整数检查

     2023-03-27     234

关键词:

【中文标题】在不使用异常的情况下进行整数检查【英文标题】:Do an integer check without using exceptions 【发布时间】:2014-11-10 17:48:45 【问题描述】:

我使用 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.");
    

【问题讨论】:

您的代码甚至无法编译;事先努力至少让它编译。通过完成这项工作并阅读相应的文档,您将在此过程中学到很多东西。 当然它不能编译,这就是问题所在。我的问题在于语句“if (a=char || b=char)”这个语句不起作用。没有 if 语句,程序编译得很好。我正在寻找的是该声明的替代方案。如果我的问题不清楚,我们深表歉意。 【参考方案1】:

您应该在致电Scanner.nextInt() 之前致电Scanner.hasNextInt()Scanner.hasNext()Scanner.next() 也是如此。

【讨论】:

【参考方案2】:

你对这一行有很多误解

if (a = char || b = char)

    我假设您的意思是使用 equal to 运算符,而不是 assignment 运算符 == instead of =

    abc)是ints,如main 中所声明的。所以我们知道它们永远不会是chars,除非你将它们转换为字符——但它们将永远是字符。 intchar 是不同的类型,1 字符可以是任何一种类型 - 所以按你的方式尝试是行不通的。

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

【讨论】:

所以如果用户输入一个字母而不是一个数字,它会捕捉到它吗? 我已链接到多个解决方案 - 我不确定您指的是哪个。但是,是的,在您阅读了这些方法并弄清楚如何实现它之后,它们中的任何一个都可能是一个可能的解决方案。

如何在不使用 sqrt 的情况下检查整数是不是是完美的正方形 [重复]

】如何在不使用sqrt的情况下检查整数是不是是完美的正方形[重复]【英文标题】:Howtocheckwhetheranintegerisaperfectsquareornotwithoutusingsqrt[duplicate]如何在不使用sqrt的情况下检查整数是否是完美的正方形[重复]【发布时间】:2017-03-1009:45:... 查看详情

如何在不使用 for 循环的情况下将列表中的所有项目与整数进行比较

】如何在不使用for循环的情况下将列表中的所有项目与整数进行比较【英文标题】:Howtocompareallitemsinalistwithanintegerwithoutusingforloop【发布时间】:2012-03-0412:33:03【问题描述】:我有几个长度不同的列表,我想将它们的每个项目与... 查看详情

Nightwatchjs:如何在不创建错误/失败/异常的情况下检查元素是不是存在

】Nightwatchjs:如何在不创建错误/失败/异常的情况下检查元素是不是存在【英文标题】:Nightwatchjs:howtocheckifelementexistswithoutcreatinganerror/failure/exceptionNightwatchjs:如何在不创建错误/失败/异常的情况下检查元素是否存在【发布时间... 查看详情

如何在不使用乘法的情况下对数字进行平方?

】如何在不使用乘法的情况下对数字进行平方?【英文标题】:HowdoIsquareanumberwithoutusingmultiplication?【发布时间】:2014-01-2311:20:54【问题描述】:想知道是否有一种方法可以在不使用操作符号(*)的情况下编写对数字(整数或小数/... 查看详情

有没有办法在不使用进位标志或 RRX 的情况下在 ARM 汇编语言中对 32 位二进制整数进行位反转?

】有没有办法在不使用进位标志或RRX的情况下在ARM汇编语言中对32位二进制整数进行位反转?【英文标题】:Isthereawaytobitreversea32-bitbinaryintegerinARMAssemblylanguagewithoutusingcarryflagsorRRX?【发布时间】:2019-11-2717:54:48【问题描述】:在... 查看详情

在不使用池的情况下检查 MySQL 新记录

】在不使用池的情况下检查MySQL新记录【英文标题】:CheckMySQLnewrecordwithoutPooling【发布时间】:2015-07-0822:34:53【问题描述】:我正在寻找一种方法来检查新记录(在MySQL表中),而无需每X秒或分钟进行池化。我发现MySQL触发器可... 查看详情

在不使用结构的情况下冒泡某种条件?

】在不使用结构的情况下冒泡某种条件?【英文标题】:Bubblingupsomesortofconditionwithoutusingastructure?【发布时间】:2019-02-2107:28:02【问题描述】:有一场比赛。玩家由整数标识,并以与他们相邻的整数的锦标赛风格进行比赛。所以... 查看详情

如何编写一个函数,在不使用返回的情况下更改原始整数列表?

】如何编写一个函数,在不使用返回的情况下更改原始整数列表?【英文标题】:Howtowriteafunctionwheretheoriginallistofintegersischangedwithoutusingreturn?【发布时间】:2017-12-0519:27:37【问题描述】:假设我们有一个整数列表:列表=[6,4,1,4,4,4... 查看详情

排毒 - 如何在不使用期望的情况下检查元素是不是存在

】排毒-如何在不使用期望的情况下检查元素是不是存在【英文标题】:Detox-Howtocheckifanelementispresentwithoutusingexpect排毒-如何在不使用期望的情况下检查元素是否存在【发布时间】:2019-04-1404:13:13【问题描述】:有没有办法在不使... 查看详情

VS2010 中的浮点自省 - 如何在不中断的情况下进行检查?

】VS2010中的浮点自省-如何在不中断的情况下进行检查?【英文标题】:FloatingPointintrospectioninVS2010-howdoIcheckwithoutbreaking?【发布时间】:2013-12-1211:48:43【问题描述】:我已经绕着这里的房子转了一圈,我以为我找到了解决办法。它... 查看详情

如何在不使用对象的情况下检查 DataGridViewComboBoxColumn 中的项目?

】如何在不使用对象的情况下检查DataGridViewComboBoxColumn中的项目?【英文标题】:HowcanIcheckforaniteminaDataGridViewComboBoxColumnwithoutusinganobject?【发布时间】:2015-09-1014:49:16【问题描述】:我需要检查DataGridViewComboBoxColumn中是否存在某个... 查看详情

在不使用while循环的情况下找到最里面的异常?

】在不使用while循环的情况下找到最里面的异常?【英文标题】:Findtheinner-mostexceptionwithoutusingawhileloop?【发布时间】:2011-04-2201:05:33【问题描述】:当C#抛出异常时,它可以有一个内部异常。我想要做的是获得最内部的异常,或... 查看详情

如何在不使用 max() 或对其进行迭代的情况下找到堆栈中的最大整数值?

】如何在不使用max()或对其进行迭代的情况下找到堆栈中的最大整数值?【英文标题】:HowtoFindtheMaxIntegerValueinaStackwithoutusingmax()oriteratingoverit?【发布时间】:2013-07-2408:56:10【问题描述】:我在一次采访中被问到以下问题:如果你... 查看详情

cppcheck 可以在不实际检查的情况下进行试运行以列出所有文件吗?

】cppcheck可以在不实际检查的情况下进行试运行以列出所有文件吗?【英文标题】:Cancppcheckdoadryruntolistallfileswithoutactuallycheckingthem?【发布时间】:2020-02-1412:02:42【问题描述】:我在一个大项目上运行cppcheck,我正在尝试排除一些... 查看详情

如何在不获取“TypeError:字符串索引必须是整数”的情况下对图像进行 numpy 切片

】如何在不获取“TypeError:字符串索引必须是整数”的情况下对图像进行numpy切片【英文标题】:Howtonumpy-slicinganimagewithoutgetting"TypeError:stringindicesmustbeintegers"【发布时间】:2018-12-2410:35:08【问题描述】:我收到了错误:"Ty... 查看详情

如何在不手动检查的情况下确定网站是不是使用 webassembly?

】如何在不手动检查的情况下确定网站是不是使用webassembly?【英文标题】:Howtofindoutifawebsiteuseswebassemblywithoutmanuallychecking?如何在不手动检查的情况下确定网站是否使用webassembly?【发布时间】:2020-05-2303:17:34【问题描述】:我... 查看详情

如何在不使用异常的情况下解决 ValueError dtype

】如何在不使用异常的情况下解决ValueErrordtype【英文标题】:HowCanISolveValueErrordtypeWithoutUsingAnException【发布时间】:2021-12-1923:57:52【问题描述】:我正在开发一个程序,该程序应该根据年龄将员工工资更新%5和%10:importcsvinfile=open... 查看详情

是否可以在不使用ajax请求的情况下检查用户是否在线?

】是否可以在不使用ajax请求的情况下检查用户是否在线?【英文标题】:Isitpossibletocheckifusersareonlinewithoutusingajaxrequest?【发布时间】:2012-05-1613:52:28【问题描述】:如果可能的话,我正在寻找一种在不使用ajax(实时)的情况下... 查看详情