Название обманчиво, однако я действительно не знал, как это задавать.проблемы с проверкой ввода в java
Я играю с java. Это мой код:
package zodiac;
import java.util.Scanner;
public class Zodiac {
public static void main(String[] args) {
Scanner username = new Scanner(System.in);
String uname;
System.out.println("Please enter your username: ");
uname = username.nextLine();
boolean test = (uname.length() <= 3);
int trip = 0;
while (trip == 0) {
trip++;
if (test) {
trip = 0;
System.out.println("Sorry username is too short try again");
uname = username.next();
}
else {
System.out.println("Welcome Mr/Mrs: " + uname);
}
}
}
}
то, что я пытаюсь сделать, это приглашение пользователю ввести свое имя пользователя и как только они делают проверить, если имя меньше или равно 3 сделать их снова ввести имя пользователя, если имя пользователя, если более 3 символов печатать приветствовать mr/mrs blablabla
на данный момент, если имя пользователя, если более трех символов, печатает приветственное сообщение, однако, если вы введете 3 или менее символов, оно сообщит вам ввести имя пользователя снова, и если вы введете имя пользователя с более чем тремя символами послесловия, он продолжает говорить пользователю, что пароль слишком короткий.
Как это исправить. Я только недавно начал изучать java в университете, однако моим учителям не хватает мотивации преподавать, поэтому я должен привести к интернету, спасибо.
Это потому, что вы не обновляете 'test'. – Maroun
Это не спецификация java - она специфична для потока кода, который вы реализовали (и будет иметь тот же эффект на всех других языках). По крайней мере, вам нужно переместить тест внутри цикла while. В противном случае 'test' остается установленным до самой первой проверки, которую вы сделали. –
просто включают 'test = (uname.length() <= 3);' после 'username.next();'. – SomeJavaGuy