我一直试图让这一点正确,但似乎有些事情没有成功,因为代码一直在接受无效的值。
package main;
import java.util.Scanner;
import tabla.TablaDeVerdad;
public class Main {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int inicializador = 1;
int contador = 1;
TablaDeVerdad tabla;
while(inicializador == 1){
System.out.println("Escoja un número de variables mayor que cero:");
int input;
while(!entrada.hasNextInt() || entrada.nextInt() <= 0){
System.out.println("Error, use un numero que sea mayor que cero:");
entrada.next();
}
input = entrada.nextInt();
tabla = new TablaDeVerdad(input);
System.out.println(tabla.getCantidadDeNúmeros());
inicializador = 0;
}
}
}
我的问题在于这些方面:
System.out.println("Escoja un número de variables mayor que cero:");
int input;
while(!entrada.hasNextInt() || entrada.nextInt() <= 0){
System.out.println("Error, use un numero que sea mayor que cero:");
entrada.next();
}
input = entrada.nextInt();
tabla = new TablaDeVerdad(
每当我运行它时,请将此作为输出: Escojaunnúmerodevariables mayor que cero: 0 错误,使用un numero que sea mayor que cero: 0 0 错误,使用un numero que sea mayor que cero: 0 0 错误,使用un numero que sea mayor que cero: 1 1 1 3
如果输入为零,则总是应该给出错误消息,并且也不应该要求将多于0的数字用作输入多次。
答案 0 :(得分:1)
我不懂西班牙语,但这是确保用户输入整数且大于0
的方式之一....
int input;
String inputStr = entrada.nextLine();
while(inputStr.replaceAll("\\D","").length() != inputStr.length() || Integer.parseInt(inputStr) <= 0){
System.out.println("Error, use un numero que sea mayor que cero:");
inputStr= entrada.nextLine();
}
input = Integer.parseInt(inputStr);
....