Привет, я пытаюсь принять только цифры на входе моей программы, но я получил неправильное сообщение - PullRequest
0 голосов
/ 21 сентября 2019

Я хочу принять только 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 ]

1 голос
/ 21 сентября 2019

Это проверка ввода, пока пользователь не ввел целочисленное значение, попросите его ввести еще раз.Я написал для вас пример:)

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;
    }
1 голос
/ 21 сентября 2019

Вы можете просто циклически проходить через ввод, пока не будет выбран определенный параметр, а затем продолжить свою игру.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...