如何在输入错误后让用户再次尝试[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

在用户输入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();
        }
    }
}
java validation hex user-input
2个回答
0
投票

这个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();
 }

0
投票

你应该使用一个循环。让用户再试一次,直到他输入有效的字符串:

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);
© www.soinside.com 2019 - 2024. All rights reserved.