这个问题在这里已有答案:
在用户输入2位十六进制数后,程序将继续运行,除非他们输入1位数或3位数和更多的十六进制数,我希望用户在控制台输入不正确的第一个“无效”消息后再次尝试它经过的第二次的值,并且没有被“无效”消息停止。
import java.util.Scanner;
public class Dance6 {
public static void main(final String[] args) {
Scanner sc = new Scanner(System.in);
String hexadecimal;
System.out.println("Please enter a 2-digit hexadecimal value : ");
hexadecimal = sc.nextLine();
if (hexadecimal.length() != 2) {
System.out.println("Invalid input, please try again : ");
sc.next();
}
}
}
这个if语句:
if (hexadecimal.length() != 2) {
System.out.println("Invalid input, please try again : ");
sc.next();
}
只执行一次。 您需要一个循环来验证输入的有效性,直到它有效:
while (hexadecimal.length() != 2) {
System.out.println("Invalid input, please try again : ");
hexadecimal = sc.nextLine();
}
你应该使用一个循环。让用户再试一次,直到他输入有效的字符串:
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a 2-digit hexadecimal value : ");
String hexadecimal = sc.nextLine();
while (hexadecimal.length() != 2) {
System.out.println("Invalid input, please try again: ");
hexadecimal = sc.nextLine();
}
System.out.println("You entered: " + hexadecimal);