初学者-Java编程While循环

初学者-Java编程While循环,java,while-loop,Java,While Loop,每次我输入某些内容时,此代码都会不断循环。如何修复它 public void inputPlayer() { Scanner input = new Scanner(System.in); while(name.length() < 1) { System.out.println("Name: "); this.setName(input.nextLine()); //name = input.nextLine();

每次我输入某些内容时,此代码都会不断循环。如何修复它

public void inputPlayer()
{
    Scanner input = new Scanner(System.in);
    while(name.length() < 1)
    {
        System.out.println("Name: ");
        this.setName(input.nextLine());
        //name = input.nextLine();

        if(name.length() < 1)
            System.err.println("Must have one or more characters");
    }
}
public void inputPlayer()
{
扫描仪输入=新扫描仪(System.in);
while(name.length()<1)
{
System.out.println(“名称:”);
this.setName(input.nextLine());
//name=input.nextLine();
if(name.length()<1)
System.err.println(“必须有一个或多个字符”);
}
}
以下是整个事件的截图:


问题在屏幕截图中可见,并且与您的
setName()
方法有关,该方法当前为:

public void setName(String newName) {
    newName = name;
}

分配的方式是错误的,因此您从不更新
名称
字段。应该是
name=newName

问题在屏幕截图中可见,并且与您的
setName()
方法有关,该方法当前为:

public void setName(String newName) {
    newName = name;
}

分配的方式是错误的,因此您从不更新
名称
字段。应该是
name=newName

因为您的setName函数错误

应该是:

    public void setName(String newName) {
        name = newName;
    }

你把newName=name

因为您的setName函数错误

应该是:

    public void setName(String newName) {
        name = newName;
    }

你把newName=name

你到底想要什么?除非
this.setName
更改名称(不知道,你还没有给出代码),否则任何东西都不会改变防护条件,因此它永远不会中断。而(name.length()<1)名称声明在哪里?@Danyalsandelo看看他发布的图像,一切都在这里。不要将代码作为图像发布,发布文本。你到底想要什么?除非
this.setName
更改名称(不知道,你还没有给出代码),否则保护条件不会改变,所以它永远不会中断。而(name.length()<1)名称在哪里声明?@Danyalsandelo看看他发布的图像,一切都在这里。不要将代码作为图像发布,发帖。@JoshuadV我本以为会有一些愤怒的IDE扭动之类的东西,但在这样一个简单的课堂上,不管怎样,它都足够突出。比我快几秒钟。嘿,edd,谢谢你的帮助!非常感谢D@JoshuadV我本以为会有一些愤怒的IDE扭动之类的,但在这样一个简单的课堂上,不管怎样,它都足够突出。比我快几秒钟。嘿,edd,谢谢你的帮助!非常感谢德洛·休齐!谢谢你的帮助你们回复得真快。你好,hughzi!谢谢你的帮助你们回复得真快。