用户输入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);