我一直在尝试解决这一问题,似乎有些事情无法解决,因为代码不断接受无效值。
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(
每当我运行它时,它都会给出以下输出:
Escoja unnúmerode variable市长que cero:
0
错误,请使用un numero que海市长que cero:
0
0
错误,请使用un numero que海市长que cero:
0
0
错误,请使用un numero que海市长que cero:
1个
1个
1个
3
当总是假定输入为零时给出错误消息,并且也不应要求将大于0的数字用作输入多次时。
最佳答案
我不懂西班牙语,但这是确保用户输入为整数且大于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);
....