当前位置: 首页 > 知识库问答 >
问题:

如何在Java中验证输入是正整数[关闭]

薄伟彦
2023-03-14

我正在尝试创建一个输入来验证输入是整数,并且它是正的。现在我有这个。我应该如何检查整数是否为正

编辑:我还需要它一直询问,直到你输入一个正整数

        /**
 * pre: none
 * post: returns a positive integer as entered by the user
 */
public static int getInput(){
    int a;
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter Desired Quantity.");

    while (!scan.hasNextInt()){ //Checks if input is Integer
        System.out.println("Enter A Positive Integer");
        scan.next();

    }
    a = scan.nextInt(); //Assigns entered integer to a
    return a; //replace with correct code
}

共有3个答案

荆鸿畅
2023-03-14

你可以试试这个:

public static int getInput(){
   Scanner scan = new Scanner(System.in);

   System.out.println("Enter Desired Quantity.");
   int a = scan.nextInt();
   while (a  < 0){ //Checks if input is Integer
       System.out.println("Enter A Positive Integer");
       a = scan.nextInt();

   }

   return a;
}
子车凯泽
2023-03-14

简单:

Scanner input = new Scanner(System.in);

System.out.print("Enter a number: ");
int number = input.nextInt();

if( number == 0)
{ System.out.println("Number is zero"); }
else if (number > 0)
{ System.out.println("Number is positive"); }
else 
{ System.out.println("Number is negative"); }

另一方面:

检查数学。符号()

返回参数的signum函数;如果参数为零,则为零;如果参数大于零,则为1.0;如果参数小于零,则为1.0。

朱梓
2023-03-14

您可以在单个循环中执行此操作,类似于跳过无效输入的循环。但是,由于循环需要确保两件事(即输入一个数字,并且该数字是正的),因此您需要修改其正文。

由于输入至少需要执行一次,因此do/while循环是更好的选择。

从满足所需条件的循环开始,即“我得到一个数字,该数字为正”:

int num = -1;
do {
    // We'll provide content of this in a moment
} while (num <= 0);

一旦循环退出,您知道num

在循环中,我们需要检查用户是否输入了一个数字。如果他做到了,我们就收获了这个数字;否则,我们会告诉用户再试一次:

System.out.print("Please enter a positive integer number: ");
if (scan.hasNextInt()) {
    num = scan.nextInt();
} else {
    System.out.println("I need an int, please try again.");
    scan.nextLine();
}

就是这样——现在有了一个循环体,可以为您读取值,还有一个循环条件,可以确保值在退出时为正值。将循环与循环体结合起来,并进行尝试。它应该能奏效。

 类似资料:
  • 我正在为客户创建页面,所以一切都很好,直到我想强迫用户在“免费通行证”字段中输入一个数字,我得到了错误 我尝试在Customer类中创建一个名为FreePass的整数类型的字段,然后为它生成getter和setter,我还修改了我的。properties文件 customer.java 未能将java.lang.String类型的属性值转换为属性FreePass所需的java.lang.Integ

  • 我正在做一个简单的程序,要求用户输入0-19之间的五个数字。我想在每个数字后面添加一些东西(比如if语句),以确保它在这个范围内。如果不是,程序应该说“请再读指令”,然后system.exit(0)。这段代码是相关的: 如有任何帮助,将不胜感激。

  • 我有密码 但是当我在文本字段中输入字符时,它们会保持打印状态,直到我切换到另一个文本字段。我需要完全禁止字符输入,我的意思是当字符输入时,我需要删除字符,或者如果可能的话,以某种方式使字符甚至不出现以供听众处理,当然也不出现在文本字段中。我的意思是只有数字字符必须出现。

  • 只是想寻求一点帮助!我现在正在做一个体重转换项目。我已经让它正常工作了,但现在我正试图让它成为傻瓜式的,也就是说,如果用户输入的数值低于或超过某个范围(在本例中,我寻找的是0到450之间的KG),则会出现一条消息,告知错误,然后会提示用户再次输入其值。我可以用下面的代码实现这一点,但问题是,当用户输入一个有效值时,它不仅会打印有效输入的转换,还会打印之前不正确的值的转换。我附上了一个命令提示符的屏

  • 问题内容: 我有一个简单的表格。所有组件和状态都保存在Page组件中。有2个显示标题和3个输入字段。第一个输入应该是文本,第二个和第三个输入应该是整数。当用户输入错误的数据类型时,我想在输入字段旁边弹出一条错误消息。我的问题与React.JS的最佳做法有关 谁认为该值有效?我想输入字段的唯一工作就是将值引导回到保持状态的组件,这是否意味着只有Page可以确定值是否有效? 然后应该如何显示弹出窗口?

  • 我试图获取代码,以防止用户输入中包含数字。 基本上,我希望代码如下所示: 请求输入 关键是(为什么这不是一个重复的问题):我不能使用循环或其他我们还没有学会的语句。到目前为止,我们所学的唯一真正的语句是if/else/else if语句。这意味着我不能像一些答案所建议的那样使用for循环。虽然它们是很好的答案,而且很有效,但我会因为使用它们而失分。 我已经有了这个,但我不知道如何测试输入是否只包含