ID入力を検証しようとしています。 IDが無効な場合は、ユーザーに再度入力するように指示する必要があります。しかし、IDが正しいときはうまくいくようです。無効な検証は私を無限ループにしますが、入力するとすぐに停止します。正しいIDを入力し直して正しいIDを入力し、正しいIDを入力したときにループを停止する方法
public class validate {
public static void main (String [] args)
{
Scanner in = new Scanner(System.in);
boolean valid_len;
int letter = 0;
int digit = 0;
int k = 0;
int num_id = 0;
char chars;
String temp_dog_id = "";
System.out.print("Enter the Dog ID ");
temp_dog_id = in.nextLine();
num_id = temp_dog_id.length();
valid_len = (num_id >= 5) ? true : false;
String dog_id = temp_dog_id;
for (int i = 0; i< num_id; i++)
{
chars = temp_dog_id.charAt(i);
if (Character.isLetter(chars) && Character.isUpperCase(chars))
{
letter = dog_id.indexOf(chars, 1);
}
if (Character.isDigit(chars))
{
digit++;
}
}
while((num_id < 5 && valid_len))
{
System.out.print("Enter the Dog ID ");
temp_dog_id = in.nextLine();
System.out.println("Invalid. Enter the Id again. An example of ID of Dog would be eg. 1M434");
k++;
}
if ((letter == 1) && valid_len)
{
System.out.println("Correct");
}
}
}
ありがとう!私は提案に感謝し、フラグの値を使用します。それは私をしばらく私を取ったが、私は今それを持っている:) –
@ニコロビン問題は、それを固定聞いて幸せ! –