2012-01-22 2 views
0

Как разрешить пользователю повторно вводить номер идентификатора клиента, если он не соответствует 5 цифрам в длину?Как установить требуемую длину в целое число в массиве?

for (int i = 0; i < 5; i++) { 
     System.out.println("Enter the 5-digit ID number of your customer " 
       + (i + 1) + "'s below:"); 
     customerID[i] = myScanner.nextLine(); 

     if (customerID[i].length() != 5) { 
      // What code goes here. I just want to make it so they can 
      // re-enter the customerID 
     } 
+2

'-i; продолжай: «Полагаю. Но я бы использовал строку 'do {read; } while (длина строки! = 5); вместо этого. – insumity

+0

Вы уже можете прочитать ввод пользователя, так что конкретно вопрос? Как вы копируете свой код для повторного запроса на ввод? Как создать цикл while, чтобы продолжать запрашивать, пока вход соответствует требованиям? – Robin

+1

Ваше название очень вводит в заблуждение, учитывая реальный вопрос. – Perception

ответ

2

Вот один из способов сделать это:

while(true) 
{ 
    customerID[i] = myScanner.nextLine(); 
    if(customerID[i].length() == 5) break; 
    System.out.print("Should be of length 5! Try Again: "); 
} 
+0

Вы можете сломать ярлык, но не продолжить. Вы можете добавить 'while (true)' в начале и 'break; 'в конце. –

+0

@PeterLawrey Да, это то, что я сделал. Благодаря :) –

1

(может быть) кратчайшего решение для этого:

do 
{ 
    customerID[i] = myScanner.nextLine(); 
} while(customerID[i].length() != 5); 
0

Вы можете использовать цикл у вас есть.

for (int i = 0; i < 5; i++) { 
    System.out.println("Enter the 5-digit ID number of your customer " 
      + (i + 1) + "'s below:"); 
    customerID[i] = myScanner.nextLine(); 

    if (customerID[i].length() != 5) { 
     // What code goes here. I just want to make it so they can 
     // re-enter the customerID 

     i--; // add this. 
    } 
} 
0

Попробуйте это вместо этого. В принципе, вам не нужно увеличивать индекс до тех пор, пока не будет действительный ввод.

int i = 0; 
while(i < 5) { 
System.out.println("Enter the 5-digit ID number of your customer " 
+ (i + 1) + "'s below:"); 
customerID[i] = myScanner.nextLine(); 

if (customerID[i].length() != 5) { 
    /* Print an error and do not increment. 
     * The next line will overwrite the current one. */ 
} else { 
    /* Increment and move on */ 
    i++; 
} 
} 
Смежные вопросы