标题是欺骗,但我真的不知道如何问这个。
我正在玩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个字符打印欢迎先生/ blablabla先生
目前,如果用户名超过3个字符,则会打印出欢迎消息,但是如果您输入3个或更少的字符,它会告诉您再次输入用户名,如果您输入的用户名超过3个字符,则不断告诉用户密码太短。
我该如何解决这个问题。我刚刚开始在大学学习java,但是我的老师缺乏教学的动力所以我必须在互联网上学习,谢谢你。
答案 0 :(得分:2)
您可能需要在代码中考虑两件事:
现在回答您的问题:您没有再次检查循环中插入的字符串所需的最小长度!此代码可能有助于您理解我提到的所有要点:
public static void main(String[] args) {
Scanner username = new Scanner(System.in);
String uname;
System.out.println("Please enter your username: ");
boolean tooShort = true;
do {
uname = username.next();
if (uname.length() <= 3)
System.out.println("Sorry username is too short try again");
else {
System.out.println("Welcome Mr/Mrs: " + uname);
tooShort = false;
}
} while (tooShort);
username.close();
}
答案 1 :(得分:1)
在您的循环中插入boolean test = (uname.length() <= 3)