Java 了解/使用scanner hasNextInt()需要帮助 公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){ int userTempVal=0; 做{ userTempVal=in.nextInt(); 如果(userTempValmax){ System.out.println(提示); } }而(userTempValmax); 返回userTempVal; }

Java 了解/使用scanner hasNextInt()需要帮助 公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){ int userTempVal=0; 做{ userTempVal=in.nextInt(); 如果(userTempValmax){ System.out.println(提示); } }而(userTempValmax); 返回userTempVal; },java,java.util.scanner,Java,Java.util.scanner,这是我当前的代码。我基本上需要扫描用户的输入,并确保它是最小值和最大值之间的整数。如果它不是最小值和最大值之间的整数,它将显示提示并扫描新的整数。如果用户输入除整数以外的任何内容(例如双精度或字符串),我当前的代码将失败。当输入不是int时,如何让代码显示提示并继续do while循环?这是针对我正在学习的一个类,讲师暗示我们可以使用hasNextInt()函数来解释这一点,但每次我尝试使用它时,它要么不起作用,要么出现错误。请帮助我,我是一个初级程序员 编辑(使用has Next Int()参

这是我当前的代码。我基本上需要扫描用户的输入,并确保它是最小值和最大值之间的整数。如果它不是最小值和最大值之间的整数,它将显示提示并扫描新的整数。如果用户输入除整数以外的任何内容(例如双精度或字符串),我当前的代码将失败。当输入不是int时,如何让代码显示提示并继续do while循环?这是针对我正在学习的一个类,讲师暗示我们可以使用hasNextInt()函数来解释这一点,但每次我尝试使用它时,它要么不起作用,要么出现错误。请帮助我,我是一个初级程序员

编辑(使用has Next Int()参数):

公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){
int userTempVal=0;
做{
userTempVal=in.nextInt();
if(userTempValmax | |!in.hasNextInt()){
System.out.println(提示);
}
}而(userTempValmax | | |!in.hasNextInt());
返回userTempVal;
}
我得到这个错误->当我输入一个int时,程序停止运行。键入字符串时: 线程“main”java.util.InputMismatchException中的异常 位于java.util.Scanner.throwFor(未知源) 位于java.util.Scanner.next(未知源) 位于java.util.Scanner.nextInt(未知源) 位于java.util.Scanner.nextInt(未知源) 在MineTest.promptUser(MineTest.java:60) 在MineTest.main(MineTest.java:24)尝试以下操作:

public static int promptUser(Scanner in, String prompt, int min, int max) {
        int userTempVal = 0;

            do {
            userTempVal = in.nextInt();
                if (userTempVal < min || userTempVal > max || !in.hasNextInt()) {
                System.out.println(prompt);
                }
           }while (userTempVal < min || userTempVal > max || !in.hasNextInt());

        return userTempVal; 
        }
import java.util.*;
公共班机{
公共静态void main(字符串[]args){
System.out.println(“正确编号:”+promptUser(新扫描仪(System.in),“给出正确编号”,10,20));
}
公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){
int userTempVal=0;
做{
if(in.hasNextInt()){//检查下一个输入是否为整数
userTempVal=in.nextInt();
如果(userTempValmax){//检查边界
System.out.println(提示符);//打印提示符
}
}
否则{
in.next();//从缓冲区中取出next()对象
System.out.println(提示符);//打印提示符
}
}while((userTempValmax));//while超出范围
返回userTempVal;
}
}
如果你有问题,只要问一下就可以了

public static int promptUser(Scanner in, String prompt, int min, int max) {
        int userTempVal = 0;

            do {
            userTempVal = in.nextInt();
                if (userTempVal < min || userTempVal > max || !in.hasNextInt()) {
                System.out.println(prompt);
                }
           }while (userTempVal < min || userTempVal > max || !in.hasNextInt());

        return userTempVal; 
        }
import java.util.*;
公共班机{
公共静态void main(字符串[]args){
System.out.println(“正确编号:”+promptUser(新扫描仪(System.in),“给出正确编号”,10,20));
}
公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){
int userTempVal=0;
做{
if(in.hasNextInt()){//检查下一个输入是否为整数
userTempVal=in.nextInt();
如果(userTempValmax){//检查边界
System.out.println(提示符);//打印提示符
}
}
否则{
in.next();//从缓冲区中取出next()对象
System.out.println(提示符);//打印提示符
}
}while((userTempValmax));//while超出范围
返回userTempVal;
}
}

如果您有问题,只需询问您需要在.next()中使用
来使用无效输入

import java.util.*;
public class Main {
    public static void main(String[] args) {
        System.out.println("Correct Number: " + promptUser(new Scanner(System.in), "give corret number", 10, 20));
    }

    public static int promptUser(Scanner in, String prompt, int min, int max) {
        int userTempVal = 0;

        do {
            if(in.hasNextInt()) { //Check if next input is an Integer
                userTempVal = in.nextInt();
                if (userTempVal < min || userTempVal > max) { //Check boundaries
                    System.out.println(prompt); //Print promt
                }
            }
            else {
                in.next(); // Get the next() Object out of Buffer
                System.out.println(prompt);  //Print promt
            }
        }while ((userTempVal < min || userTempVal > max)); // While is out of bounds
        return userTempVal; 
    }
}
公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){
int userTempVal=0;
做{
if(在.hasNextInt()中){
userTempVal=in.nextInt();
如果(userTempValmax){
System.out.println(提示);
}
}否则{
System.out.println(“无效输入”);
in.next();
}
}而(userTempValmax);
返回userTempVal;
}

您需要使用.next()中的
来使用无效输入

import java.util.*;
public class Main {
    public static void main(String[] args) {
        System.out.println("Correct Number: " + promptUser(new Scanner(System.in), "give corret number", 10, 20));
    }

    public static int promptUser(Scanner in, String prompt, int min, int max) {
        int userTempVal = 0;

        do {
            if(in.hasNextInt()) { //Check if next input is an Integer
                userTempVal = in.nextInt();
                if (userTempVal < min || userTempVal > max) { //Check boundaries
                    System.out.println(prompt); //Print promt
                }
            }
            else {
                in.next(); // Get the next() Object out of Buffer
                System.out.println(prompt);  //Print promt
            }
        }while ((userTempVal < min || userTempVal > max)); // While is out of bounds
        return userTempVal; 
    }
}
公共静态int-promptUser(扫描仪输入、字符串提示、int-min、int-max){
int userTempVal=0;
做{
if(在.hasNextInt()中){
userTempVal=in.nextInt();
如果(userTempValmax){
System.out.println(提示);
}
}否则{
System.out.println(“无效输入”);
in.next();
}
}而(userTempValmax);
返回userTempVal;
}

“讲师暗示我们可以使用hasNextInt()函数来解释这一点,但每次我尝试使用它时,它要么不起作用,要么出现错误。”您遇到了什么错误?“不工作”是什么意思?检查
hasnetint()
是否为
true
是正确的策略,以确保对
nextInt()
的后续调用将成功返回
int
。可以让它工作。你能告诉我们你是如何使用它的吗?我将编辑并发布我的代码/我使用hasNextInt()时遇到的错误。在调用
nextInt()之前,你需要调用
hasNextInt()
。此方法的全部要点是确定将数据获取为int是否安全。如果其结果为
false
,只需使用其他方法使用无效令牌,这些方法可以接受任何类型的数据,如
next()
nextLine()
,并请求另一个值。如何