为了账号安全,请及时绑定邮箱和手机立即绑定

你好,我试图只接受程序输入中的数字,但我收到了错误的消息

你好,我试图只接受程序输入中的数字,但我收到了错误的消息

12345678_0001 2023-08-16 10:52:06
我想在这个程序中只接受 0,1 或 2 输入,否则会得到无效输入,有人可以帮忙吗?我尝试将字符串更改为双精度,但都不起作用Scanner da = new Scanner(System.in);String name;                          int big=0;                         int[] marks = new int[5];              String getData(){    int total=0;                                    String one="one";                               System.out.println("");    name = da.nextLine();    System.out.println("");    big=da.nextInt();    for(int b=0;b<5;b++)        System.out.println("+(b+1));        marks[b]=da.nextInt();        if(b==4) da.nextLine();      if(total>big)  {        big = total;                              return name;                                        }}
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这就是输入验证,当用户没有输入整数值时要求用户重新输入。我已经为你写了一个例子:)


import java.util.Scanner;


public class Tester {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        while (!sc.hasNextInt()){

            System.out.println("please enter again");

            sc.next();

        }

        int x = sc.nextInt();

        System.out.println(x);

    }

}

在这种情况下,您可以实现一个单独的方法来进行输入验证。


public int getInputInt(Scanner sc, int max, int min) {

        while (sc.hasNext()) {

            if (sc.hasNextInt()) {

                int val = sc.nextInt();

                if (val >= min && val <= max) { 

                    return val;

                }

            } else {

                sc.next();

            }

        }

        return -1;

    }


查看完整回答
反对 回复 2023-08-16
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

您可以简单地循环输入,直到选择给定的选项,然后继续游戏。


while(true){

  System.out.println(" Sciccors (0), Stone(1) or Paper(2)? ");

  scanner= scan.nextLine();

  if( scanner.equals("0") || scanner.equals("1") || scanner.equals("2"))

    break;

}


查看完整回答
反对 回复 2023-08-16
  • 2 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信