如何检查输入是否为整数?当用户输入7程序结尾时,我的输出出现问题

问题描述 投票:-1回答:1

/ **要更改此许可证标题,请在“项目属性”中选择“许可证标题”。*要更改此模板文件,请选择工具|范本*并在编辑器中打开模板。* /包验证输入;

import java.util.Scanner;

/ **** @作者阿卜杜勒* /公共类ValidatingInput {

/**
 * @param args the command line arguments
 */

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
// Declare variables
int number = 0;
int lowerbound = 5;
int upperbound =10;
//Prompt the user to enter an interger between 5 and 10
System.out.println("Please enter a interger int between 5 and 10");
while (!s.hasNextInt()) {
System.out.println("Not an int");
s.next(); 
}
number = s.nextInt();

if (number<= lowerbound || number >= upperbound){ 
    System.out.println("out bound");
    number++;
}else{
    System.out.println("you entered");
    s.next();

       }number = s.nextInt();


   } 

}

java
1个回答
0
投票

我认为这里有两个问题:

  1. 如果用户输入的整数超出范围,则您的程序将执行以下操作:它将调用number = s.nextInt()(等待更多输入),然后停止(从main返回)。您需要另一个循环,直到用户输入有效整数为止。
  2. 如果用户输入整数,则可以使用number = s.nextInt()从扫描仪读取该整数。如果整数在范围内,请调用s.next(),然后调用number = s.nextInt()*again*. Both calls look suspicious/wrong: you already have the integer to be read in variable number. There is no need to read any more information from the scanner. In fact, the calls tos.next()and s.nextInt()`,直到输入更多数据为止。

在第一行number = s.nextInt()之后,您不应再呼叫s.nextXXX()

© www.soinside.com 2019 - 2024. All rights reserved.