标题在欺骗,但是我真的不知道该怎么问。

我在玩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,但是我的老师缺乏教学的动力,所以我必须上互联网了,谢谢。

最佳答案

您可能需要在代码中考虑两件事:

如果布尔值足够,则

  • 不要使用整数来停止循环
  • 一个do-while循环可能更适合您的情况(您不必这样重写代码!

  • 现在您的问题是:您不会在循环中再次检查所需的最小插入字符串长度!这段代码可以帮助您理解我提到的所有要点:
    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();
    }
    

    关于java - Java中检查输入的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33866522/

    10-17 02:43